diff options
author | emkael <emkael@tlen.pl> | 2017-07-30 14:23:45 +0200 |
---|---|---|
committer | emkael <emkael@tlen.pl> | 2017-07-30 14:26:59 +0200 |
commit | 808116c88329954ce07280fb6caf12d60c5b59df (patch) | |
tree | 6e0c4d472dafa18dc7817e3282c8508b64a610e1 | |
parent | 915e4fd49087c38a2559f08512db5d2e2cfb37bc (diff) |
Sql.selectOne now can distinguish no value in result row from no result at all
-rw-r--r-- | Aktywator/Sql.cs | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/Aktywator/Sql.cs b/Aktywator/Sql.cs index c35b0dd..cf0eb38 100644 --- a/Aktywator/Sql.cs +++ b/Aktywator/Sql.cs @@ -7,6 +7,10 @@ using data = System.Data.OleDb.OleDbDataReader; namespace Aktywator { + class OleDbRowMissingException : Exception + { + } + class Sql { private OleDbConnection connection; @@ -34,12 +38,19 @@ namespace Aktywator OleDbCommand cmd = new OleDbCommand(q, connection); return cmd.ExecuteNonQuery(); } - public string selectOne(string q) + public string selectOne(string q, bool checkForRow = false) { OleDbCommand cmd = new OleDbCommand(q, connection); object o = cmd.ExecuteScalar(); - if (o == null) return ""; - else return o.ToString(); + if (o == null) // it's null if the row does not exist, it'd be DBNull.Value if NULL was the value in existing row + { + if (!checkForRow) + { + return ""; + } + throw new OleDbRowMissingException(); + } + return o.ToString(); } public data select(string q) { |