检查Datatable Value是否为Null

时间:2014-03-12 03:33:26

标签: c# vb.net

基本上,我只是想问一下如果数据表值是否为空则如何检查?我循环遍历表中的每个单元格,并检查单元格的值是否为空。

我试过这个

If Not dt.Rows(i)(j).value Is Nothing Then
   MsgBox("cell empty")
End If

If Not dt.Rows(i)(j).value = "" Then
   MsgBox("cell empty")
End If

但它不起作用。

截至目前,我的数据表看起来像这样

“e”表示空

“ne”表示不为空

“x”不在乎


Col1 Col2 Col3 ... 

ne   x    x   ...

x    e    x   ...

x    x    x   ...

上表中的例子..

dt(0)(0)= ne

dt(1)(1)= e

dt(0)(1)=“e”或“ne”

PS,数据表中的所有数据都是字符串..

如果dt(1)(1)为空,如何获取值? C#代码也可以。谢谢

修改

不知怎的,我已经设法解决了我的问题,它在我的程序中满足了我的要求所以..是的。

If dt.Rows(i)(j).Value.ToString = "" Then
   MsgBox("empty")
End If

感谢。请关闭主题。

4 个答案:

答案 0 :(得分:3)

将值与DBNull.Value进行比较。

foreach(DataRow row in myTable.Rows)
{
    object value = row["column"];
    if (value == DBNull.Value)
        // do something
    else
        // do something else
}

在另一个问题here上也回答了这个问题。

答案 1 :(得分:2)

http://msdn.microsoft.com/en-us/library/system.convert.isdbnull(v=vs.110).aspx

你可以使用IsDBNull方法

while (dr.Read())
{
  dr.GetValues(fieldValues);

  for (int fieldCounter = 0; fieldCounter < fieldCount; fieldCounter++)
  {
     if (Convert.IsDBNull(fieldValues[fieldCounter]))
        fieldValues[fieldCounter] = "NA";
  }
  grid.Rows.Add(fieldValues);


 }

答案 2 :(得分:1)

您可以尝试以下

if(string.IsNullOrEmpty((string)dt.Rows[i][j].value))
{
  MsgBox("cell empty");
}
else
{
 MsgBox("cell is not empty")
}

答案 3 :(得分:1)

对于VB.net

我找到this,抱歉我不确定在IsDbNull内部检查什么(如果错误请原谅我),因为我没有经验处理vb.net中的数据库。

如果错误,请评论我修复,谢谢。

If NOT IsDbNull(dt.Rows(i)(j)) Then
   MsgBox("cell non-empty")
ELSE
   MsgBox("cell empty")
End If

或者只检查DbNull,而不仅仅是this post

中接受的答案
If IsDBNull(dt.Rows(i)(j)) OrElse dt.Rows(i)(j).Value.ToString Is Nothing OrElse dt.Rows(i)(j).Value.ToString = string.Empty Then
   MsgBox("cell empty")
  1. 如果我想查看IsDBNull(),我应该放dt.Rows(i)(j)dt.Rows(i)(j).Value要检查?
  2. 如果我想查看Is Nothing,我应该放dt.Rows(i)(j)dt.Rows(i)(j).Valuedt.Rows(i)(j).Value.ToString要检查?
  3. 感谢。很抱歉提出问题....