- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
与检查行是否等于 DbNull.value 相比,使用 C# 方法 DataRow.IsNull 确定 null 值有什么好处?
if(ds.Tables[0].Rows[0].IsNull("ROWNAME")) {do stuff}
对比
if(ds.Tables[0].Rows[0]["ROWNAME"] == DbNull.value) {do stuff}
最佳答案
没有真正的实际好处。使用您认为更易读的一种。
至于它们之间的具体区别,基本答案是 IsNull
查询列中特定记录的空状态。使用 == DBNull.Value
实际上会检索该值,并在它实际上为 null 的情况下进行替换。换句话说,IsNull
检查状态而不实际检索值,因此稍微快一些(至少在理论上)。
理论上,如果您要使用自定义存储类型,列可能会返回 DBNull.Value
之外的其他内容作为空值,但这种情况永远不会发生(在我的经验中)。如果是这种情况,IsNull
将处理存储类型使用 DBNull.Value
以外的其他内容的情况,但是,同样,我从未见过这样做。
关于c#-4.0 - 在数据集中查找空值 - DataRow.IsNull 方法与 ==DbNull.Value - c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5599390/
我的应用程序输出“System.InvalidCastException:“对象无法从 DBNull 转换为其他类型。” Dim sqlquery = String.Format("SELECT id
是否有人对如何检查值是否为 DBNull 有偏好? ?我发现这两个语句给了我想要的结果,但只是想知道是否有偏好? if (any is System.DBNull) 与...一样: if (any =
我很好奇使用 if(some_value is DBNull) 与 if(DBNull.Value.Equals(some_value)) 的优缺点是什么。我个人更喜欢 if(some_value i
我可以检查 DBnull使用任何方法在数据行上。 要么通过使用 if(dr[0][0]==DBNull.Value) //do somethin 或者通过做 if(dr[0][0].ToString(
如标题所示,我有一个代码,当数据库中没有几何图形并且 DbGeometry 获得空值时,我会收到带有空值的 DbNull 类型。但是当我想做一个 if 语句来检查 DbGeometry 是否等于 Db
我对 .NET 中的空值和变量有点困惑。 (首选VB) 有没有办法检查任何给定变量的“空值”,无论它是对象还是值类型?或者我的空检查是否必须始终预测它是检查值类型(例如 System.Integer)
编辑:从PowerShell 7 Preview 2开始,由于Joel Sallow通过pull request 9794,-not [System.DBNull]::Value的计算结果为$true
在 .NET 中有 null引用,到处都用来表示一个对象引用为空,然后还有DBNull ,它被数据库驱动程序(和其他几个)用来表示......几乎相同的东西。自然,这会造成很多困惑,并且必须制定转换例
SQLServer 整型字段。值有时为空。DataAdapter填充数据集OK,可以在DatagridView中显示数据。 当尝试以编程方式从数据集中检索数据时,数据集字段检索代码会抛出 Strong
现在我正在使用以下方法: string[] AudienceTags = ((string[])(relResults["NEVCOAudienceTag"].GetType() == typeof(
我有一个类型为的对象: dynamic {System.DBNull} 我要检查一下: if (myObject!= null || myObject!= DBNull.Value) { Mes
当使用 expando 对象填充我的数据表时,我在初始化新的 datarow 时遇到以下错误消息。异常(exception)情况是: Invalid Storage Type: DBNull publ
我得到 从类型 'DBNull' 到类型 'Integer' 的转换无效。”错误行“Dim avgObject As string = Cstr(avgCom.ExecuteScalar()) 当删除
当我从数据库中检索任何标量值时,我通常会为可为空的字段编写这样的代码。 cmd.ExecuteScalar() == DBNull.Value ? 0 : (int)cmd.ExecuteScalar
我需要从一个DataRow 中解析一个值并将其分配给另一个DataRow。如果输入有效,则我需要将其解析为 double,或者将 DBNull 值添加到输出。我正在使用以下代码: public dou
我正在尝试执行一个存储过程,然后使用 if 语句检查空值,但我做空了。我是 VB 专家,所以如果我犯了小学生语法错误,请多多包涵。 objConn = new SqlConnection(strCon
如果 DataRow 中的列可能是 DBNull , 是以下将 DBNull 替换为空字符串的最短方法? Dim result As String = if(isDBNull(dataRow1("co
我正在查看我正在处理的 .net 程序的一些代码。该程序的前任作者在一年前将代码给了我。突然,我看到一个我没有接触过的代码抛出的异常: if ((string)row["LevelName"] !=
当用户名与登录我的程序的用户相同时,我编写了从 Access 数据库中检索电子邮件地址的代码。我希望在名为 Email 的文本框中显示电子邮件地址值 Dim x If ConnectionDb.Sta
这个问题偶尔会出现,但我还没有看到令人满意的答案。 典型的模式是(行是DataRow): if (row["value"] != DBNull.Value) { someObject.
我是一名优秀的程序员,十分优秀!