检查列是否返回空值的最佳方法(从数据库到.net应用程序)

发布于 2024-08-16 17:05:13 字数 275 浏览 3 评论 0原文

我有一个带有日期时间列的表 该列可以有 NULL 值

现在我使用 ODBC 连接连接到数据库,并将值获取到 .net / c# 中的 DataTable 中。

我可以通过

if(String.IsNullOrEmpty(table.rows[0][0].ToString())
{
     //Whatever I want to do
}

Is String.IsNullOrEmpty 检查空值的正确方法来检查它是否为 NULL。

I have a table with a DateTime column
the column can have NULL values

Now I connect to the database using an ODBC connection and get the value into a DataTable in .net / c#.

I am able to check it for NULL by going

if(String.IsNullOrEmpty(table.rows[0][0].ToString())
{
     //Whatever I want to do
}

Is String.IsNullOrEmpty the correct way to check for null values.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

灯下孤影 2024-08-23 17:05:13

在对象上使用 DBNull.Value.Equals 而不将其转换为一个字符串。

这是一个例子:

   if (! DBNull.Value.Equals(row[fieldName])) 
   {
      //not null
   }
   else
   {
      //null
   }

Use DBNull.Value.Equals on the object without converting it to a string.

Here's an example:

   if (! DBNull.Value.Equals(row[fieldName])) 
   {
      //not null
   }
   else
   {
      //null
   }
ㄖ落Θ余辉 2024-08-23 17:05:13

只需使用 DataRow.IsNull< /强>。它覆盖了接受列索引列名称DataColumn 对象作为参数。

使用列索引的示例:

if (table.rows[0].IsNull(0))
{
    //Whatever I want to do
}

尽管该函数称为 IsNull,但它实际上与 DbNull 进行比较(这正是您所需要的)。


如果我想检查 DbNull 但没有 DataRow 怎么办?使用Convert.IsDBNull

Just use DataRow.IsNull. It has overrides accepting a column index, a column name, or a DataColumn object as parameters.

Example using the column index:

if (table.rows[0].IsNull(0))
{
    //Whatever I want to do
}

And although the function is called IsNull it really compares with DbNull (which is exactly what you need).


What if I want to check for DbNull but I don't have a DataRow? Use Convert.IsDBNull.

鹿港巷口少年归 2024-08-23 17:05:13
System.Convert.IsDbNull][1](table.rows[0][0]);

IIRC,(table.rows[0][0] == null) 不起作用,因为 DbNull.Value != null;

System.Convert.IsDbNull][1](table.rows[0][0]);

IIRC, the (table.rows[0][0] == null) won't work, as DbNull.Value != null;

_失温 2024-08-23 17:05:13

行.IsNull("列")

row.IsNull("column")

別甾虛僞 2024-08-23 17:05:13

如果我们使用 EF 并在 while 循环中读取数据库元素,

   using( var idr = connection, SP.......)
   {
       while(idr.read())
       {
          if(String.IsNullOrEmpty(idr["ColumnNameFromDB"].ToString())
          //do something
       }
   }

If we are using EF and reading the database element in while loop then,

   using( var idr = connection, SP.......)
   {
       while(idr.read())
       {
          if(String.IsNullOrEmpty(idr["ColumnNameFromDB"].ToString())
          //do something
       }
   }
混浊又暗下来 2024-08-23 17:05:13

只是检查一下

if(table.rows[0][0] == null)
{
     //Whatever I want to do
}

或者你可以

if(t.Rows[0].IsNull(0))
{
     //Whatever I want to do
}

Just check for

if(table.rows[0][0] == null)
{
     //Whatever I want to do
}

or you could

if(t.Rows[0].IsNull(0))
{
     //Whatever I want to do
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文