基本上,我只是想问一下如果数据表值是否为空则如何检查?我循环遍历表中的每个单元格,并检查单元格的值是否为空。
我试过这个
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
感谢。请关闭主题。
答案 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")
IsDBNull()
,我应该放dt.Rows(i)(j)
或
dt.Rows(i)(j).Value
要检查?Is Nothing
,我应该放dt.Rows(i)(j)
或
dt.Rows(i)(j).Value
或dt.Rows(i)(j).Value.ToString
要检查?感谢。很抱歉提出问题....