C# 检查列是否返回空值的最佳方法(从数据库到.net应用程序)
我有一个带有日期时间列的表 该列可以有空值 现在,我使用ODBC连接到数据库,并将值放入.net/c#中的DataTable中 我可以通过去检查它是否为空C# 检查列是否返回空值的最佳方法(从数据库到.net应用程序),c#,.net,datetime,datatable,null,C#,.net,Datetime,Datatable,Null,我有一个带有日期时间列的表 该列可以有空值 现在,我使用ODBC连接到数据库,并将值放入.net/c#中的DataTable中 我可以通过去检查它是否为空 if(String.IsNullOrEmpty(table.rows[0][0].ToString()) { //Whatever I want to do } Is String.IsNullOrEmpty检查空值的正确方法。在对象上使用,而不将其转换为字符串 下面是一个例子: if (! DBNull.Value.Equ
if(String.IsNullOrEmpty(table.rows[0][0].ToString())
{
//Whatever I want to do
}
Is String.IsNullOrEmpty检查空值的正确方法。在对象上使用,而不将其转换为字符串
下面是一个例子:
if (! DBNull.Value.Equals(row[fieldName]))
{
//not null
}
else
{
//null
}
row.IsNull(“column”)只需检查
if(table.rows[0][0] == null)
{
//Whatever I want to do
}
或者你可以
if(t.Rows[0].IsNull(0))
{
//Whatever I want to do
}
IIRC,(table.rows[0][0]==null)
将不起作用,因为DbNull.Value!=无效代码>只需使用。它具有接受列索引、列名或数据列对象作为参数的覆盖
使用列索引的示例:
if (table.rows[0].IsNull(0))
{
//Whatever I want to do
}
尽管该函数被称为IsNull
,但它确实与DbNull
相比较(这正是您所需要的)
如果我想检查DbNull,但我没有数据行,该怎么办?使用。如果我们使用EF并读取while循环中的数据库元素
using( var idr = connection, SP.......)
{
while(idr.read())
{
if(String.IsNullOrEmpty(idr["ColumnNameFromDB"].ToString())
//do something
}
}
这看起来是正确的方法。正如上面链接中所说,“以下示例调用DBNull.Value.Equals方法来确定联系人数据库中的数据库字段是否具有有效值。如果具有有效值,则字段值将附加到标签中的字符串输出中。”table.rows[0][0]==null失败,这就是我使用.ToString()的原因然后使用String.isNullorEmpty检查IsNull方法可以工作,但不能直接将null与null进行比较;null==null为false。充其量,您8必须与DBNull进行比较。Value@Val:No.null==null是真的。@emilsteen D'oh,你当然是对的。九年过去了,我不记得为什么我是从臀部射击:-(弦),不是刺痛。
using( var idr = connection, SP.......)
{
while(idr.read())
{
if(String.IsNullOrEmpty(idr["ColumnNameFromDB"].ToString())
//do something
}
}