13得票4回答
C#数据库访问:DBNull与null的区别

我们在这里使用自己的ORM,并为所有数据库表提供强类型包装器。我们还允许执行弱类型的临时SQL语句,但这些查询仍然通过同一类来从数据读取器中获取值。 在将该类调整为与Oracle配合使用时,我们遇到了一个有趣的问题。是更好地使用DBNull.Value还是null?使用DBNull.Valu...

13得票4回答
无法隐式转换类型“decimal?”为“decimal”。

sdr是我的sqldatareader,我想检查类型为decimal的curPrice值是否为空。 inrec.curPrice = sdr.IsDBNull(7) ? (decimal?)null : sdr.GetDecimal(7); 我收到了以下错误消息: 无法隐式转换类型...

12得票5回答
从IDataReader获取值的空安全方式

(LocalVariable)ABC.string(Name) = (IDataReader)dataReader.GetString(0); 这个name值是从数据库中获取的。 这里的情况是,如果读取到的name为null,则会抛出异常? 我在这里手动进行一些if条件判断。我不想手动编写检查...

12得票3回答
将 DBNull.Value 和空文本框值传递到数据库

我在页面上有一些文本框,可以为空,因为它们是可选的,我有以下数据访问层(DAL)代码。parameters.Add(new SqlParameter("@FirstName", FirstName)); parameters.Add(new SqlParameter("@LastName", ...

12得票3回答
SqlDataReader最佳检查空值的方法 - sqlDataReader.IsDBNull vs DBNull.Value

我想从数据库中检索十进制数值,并想知道检查空值的推荐方式是什么。 我在MSDN - DBNull.Value Field上看到,这种检查很少使用。 因此,reader.IsDBNull是否是检查空值的最佳/最有效的方式? 我创建了两个示例方法:public static decimal?...

11得票6回答
(any == System.DBNull.Value) 与 (any is System.DBNull) 的区别

有人偏爱哪种方式来检查一个值是否为 DBNull 吗?我发现这两个语句都可以给我想要的结果,但我只是想知道大家是否有偏好。 if (any is System.DBNull) 同下面这个语句一样: if (any == System.DBNull.Value) 谢谢!

11得票3回答
ExecuteScalar 返回 null 或 DBNull(开发或生产服务器)

我正在尝试在C#中向现有的DataRow添加一列。然后,该列将填充来自我的数据库的单个值。 DataRow dr已经存在并且列"COLNAME"也存在。 comTBP是我的SqlCommand。dr["COLNAME"] = Convert.ToInt32(comTBP.ExecuteSca...

10得票2回答
操作数类型冲突:nvarchar与image不兼容。

我正在使用一个SQL Server 2008存储过程,按照以下语法来创建一个新的记录:cmd.Parameters.Add("@photo", DBNull.Value) cmd.ExecuteNonQuery() 但结果是:Operand type clash: nvarchar is in...

10得票4回答
简洁使用DBNull?(三元运算符?)

似乎三元运算符中存在一些类型混淆问题。我知道这个问题已经在其他SO线程中得到了解决,但这通常是与可空类型有关的。对于我的情况,我真的只是在寻找更好的方法。 我想能够使用 proc.Parameters[PARAM_ID].Value = string.IsNullOrEmpty(...

10得票4回答
处理 DBNull.Value

我经常需要处理与网格控件连接的 DataTables,自定义更新似乎总是会产生很多与 DBNull.Value 相关的代码。我在这里看到了一个类似的问题,但认为必须有更好的答案: 如何最好地处理 DBNull 我发现自己倾向于将数据库更新封装在方法中,因此我最终以以下代码结束,其中将 DB...