Questions tagged «dbnull»

18
将空值分配给SqlParameter
下面的代码给出了一个错误-“没有从DBnull到int的隐式转换”。 SqlParameter[] parameters = new SqlParameter[1]; SqlParameter planIndexParameter = new SqlParameter("@AgeIndex", SqlDbType.Int); planIndexParameter.Value = (AgeItem.AgeIndex== null) ? DBNull.Value : AgeItem.AgeIndex; parameters[0] = planIndexParameter;
188 c#  dbnull  sqlparameter 

15
检查DBNull然后分配给变量的最有效方法?
这个问题有时会出现,但是我还没有找到满意的答案。 一个典型的模式是(行是DataRow): if (row["value"] != DBNull.Value) { someObject.Member = row["value"]; } 我的第一个问题是哪个效率更高(我已经提出了条件): row["value"] == DBNull.Value; // Or row["value"] is DBNull; // Or row["value"].GetType() == typeof(DBNull) // Or... any suggestions? 这表明.GetType()应该更快,但是也许编译器知道一些我不知道的技巧? 第二个问题,是否值得缓存row [“ value”]的值,或者编译器是否仍然优化了索引器? 例如: object valueHolder; if (DBNull.Value == (valueHolder = row["value"])) {} 笔记: row [“ value”]存在。 我不知道该列的列索引(因此查找列名)。 我在问关于检查DBNull然后分配的问题(不是关于过早的优化等)。 我对一些方案进行了基准测试(以秒为单位的时间,进行10,000,000次试用): …
151 .net  dbnull 

6
等同于ISNULL(),NVL(),IFNULL()或COALESCE()的SQLite
我想避免在我的代码中进行许多如下检查: myObj.someStringField = rdr.IsDBNull(someOrdinal) ? string.Empty : rdr.GetString(someOrdinal); 我想我可以通过执行以下操作让查询处理空值: SELECT myField1, [isnull](myField1, '') FROM myTable1 WHERE myField1 = someCondition 我正在使用SQLite,但似乎无法识别该isnull功能。我也试过其他数据库中的一些公认的那些等效(NVL(),IFNULL()和COALESCE()),但SQLite的似乎不认识任何人。 有没有人有任何建议或知道更好的方法来做到这一点。不幸的是,数据库没有所有字段的默认值。另外,LEFT JOIN在某些情况下,我需要使用一些子句,其中某些返回的字段将为null,因为LEFT JOIN表中的匹配记录将不存在。
92 .net  sqlite  dbnull 

6
null和System.DBNull.Value有什么区别?
null和System.DBNull.Value之间有什么区别吗?如果是,那是什么? 我现在注意到了这种行为- while (rdr.Read()) { if (rdr["Id"] != null) //if (rdr["Id"] != System.DBNull.Value) { int x = Convert.ToInt32(rdr["Id"]); } } 虽然我使用sql datareader从数据库检索数据,但是没有返回if(rdr["Id"] != null)返回的值true,最终抛出了将null强制转换为整数的异常。 但是,如果我使用if (rdr["Id"] != System.DBNull.Value)return的话false。 null和System.DBNull.Value有什么区别?
91 c#  null  dbnull 

12
在vb.net中处理dbnull数据
我想生成一些从MS-Access数据库检索并存储在DataTable对象/变量myDataTable中的数据的格式化输出。但是,myDataTable中的某些字段包含dbNull数据。因此,如果任何字段lastname,intials或sID的值为dbNull,则下面的VB.net代码段将给出错误。 dim myDataTable as DataTable dim tmpStr as String dim sID as Integer = 1 ... myDataTable = myTableAdapter.GetData() ' Reads the data from MS-Access table ... For Each myItem As DataRow In myDataTable.Rows tmpStr = nameItem("lastname") + " " + nameItem("initials") If myItem("sID")=sID Then ' Do something End If …
75 vb.net  dbnull 

6
DBNull的意义是什么?
在.NET中,存在一个null引用,该引用到处都用于表示对象引用为空,然后是DBNull,该引用由数据库驱动程序(和其他一些驱动程序)用来表示...几乎是同一件事。自然,这会引起很多混乱,必须转换转换例程,等等。 那么,最初的.NET作者为什么决定这样做呢?对我而言,这没有任何意义。他们的文档也没有意义: DBNull类表示一个不存在的值。例如,在数据库中,表行中的列可能不包含任何数据。即,该列被认为根本不存在,而不仅仅是没有值。DBNull对象表示不存在的列。此外,COM互操作使用DBNull类来区分VT_NULL变体和VT_EMPTY变体,VT_NULL变体表示不存在的值,而VT_EMPTY变体表示未指定的值。 关于“不存在的列”的废话是什么?有一列存在,只是没有特定行的值。如果不存在,则尝试访问特定单元格时会出现异常,而不是DBNull!我可以理解需要区分VT_NULL和VT_EMPTY,但是为什么不COMEmpty上课呢?这将更适合整个.NET框架。 我想念什么吗?谁能说出为什么DBNull发明以及它可以解决什么问题?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.