如何检查它是否为空?

发布于 2024-08-05 11:46:08 字数 618 浏览 1 评论 0原文

我从数据库中检索数据,如下所示。如何检查从数据库检索的值是否为空?

Private Function GetBatch() As DataSet
        Dim dataset As New DataSet
        Dim adapter As Data.SqlClient.SqlDataAdapter
        Dim cn As New System.Data.SqlClient.SqlConnection(connectionstring())
        GetBatchCommand.Connection = cn
        adapter = New Data.SqlClient.SqlDataAdapter(GetBatchCommand)
        adapter.Fill(dataset)
        Return dataset
End Function

Dim dataset As New DataSet
            dataset = GetBatch()

With dataset.Tables(0)

Dim PersonID As String = .Rows(int).Item("personId")

我想检查 personID 是否为空。怎么办呢?

I retrieve data from database like below. How do I check whether the value retrieved from database is null?

Private Function GetBatch() As DataSet
        Dim dataset As New DataSet
        Dim adapter As Data.SqlClient.SqlDataAdapter
        Dim cn As New System.Data.SqlClient.SqlConnection(connectionstring())
        GetBatchCommand.Connection = cn
        adapter = New Data.SqlClient.SqlDataAdapter(GetBatchCommand)
        adapter.Fill(dataset)
        Return dataset
End Function

Dim dataset As New DataSet
            dataset = GetBatch()

With dataset.Tables(0)

Dim PersonID As String = .Rows(int).Item("personId")

I'd like to check whether personID is null. How do do that?

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

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

发布评论

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

评论(5

泡沫很甜 2024-08-12 11:46:08

尝试 DataRow 的 IsNull 方法 检查 null 值:

Dim isPersonIDNull As Boolean = .Rows(0).IsNull("personId")

或者使用 IsDBNull 方法

Dim isPersonIDNull As Boolean = IsDBNull(.Rows(int).Item("personId"))

或者手动检查如果该值等于 DBNull :

Dim isPersonIDNull As Boolean = .Rows(int).Item("personId").Equals(DBNull.Value)

Try DataRow's IsNull method to check null values :

Dim isPersonIDNull As Boolean = .Rows(0).IsNull("personId")

Or use IsDBNull method :

Dim isPersonIDNull As Boolean = IsDBNull(.Rows(int).Item("personId"))

Or manually Check if the value equals DBNull :

Dim isPersonIDNull As Boolean = .Rows(int).Item("personId").Equals(DBNull.Value)
套路撩心 2024-08-12 11:46:08
If DBNull.Value.Equal(.Rows(int).Item("personId")) Then
...

DBNull

If DBNull.Value.Equal(.Rows(int).Item("personId")) Then
...

DBNull

凉栀 2024-08-12 11:46:08

您还可以使用 Convert.DbNull 常量。

You can also use the Convert.DbNull constant.

浅忆流年 2024-08-12 11:46:08

在将值分配给 PersonID 之前,您必须检查该值是否为空,

如下所示:

if .Rows(int).Item("personId") = DBNull.Value Then
  ' Assign some Dummy Value
  PersonID = ""
else
  PersonID = .Rows(int).Item("personId") 
end if

我建议将该代码段提取到辅助方法中,该方法获取给定列的值或默认值。

You have to check if the value is null before you assign it to PersonID

like:

if .Rows(int).Item("personId") = DBNull.Value Then
  ' Assign some Dummy Value
  PersonID = ""
else
  PersonID = .Rows(int).Item("personId") 
end if

I would recommend to extract that piece of code into a helper method which gets either the value or a default for a given column.

一瞬间的火花 2024-08-12 11:46:08

如果表没有行,则可能会发生这种情况,此时 ds.Table(0).Rows(int).Item("personId") 将返回空引用异常,

因此您必须使用两个条件,

Dim PersonID As String =""
if(ds.tables.count>0) Then
 if(ds.tables(0).Rows.Count>0) Then
   if(NOT DBNull.Value.Equal((ds.tables(0).Rows(int).Item("PersonID"))) Then
              PersonID = ds.tables(0).Rows(int).Item("PersonID")

我认为它会解决您的问题。 .可能仅存在较小的语法变化

This situation can occur if table with no rows, that time ds.Table(0).Rows(int).Item("personId") will return null reference exception

so you have to use two conditions

Dim PersonID As String =""
if(ds.tables.count>0) Then
 if(ds.tables(0).Rows.Count>0) Then
   if(NOT DBNull.Value.Equal((ds.tables(0).Rows(int).Item("PersonID"))) Then
              PersonID = ds.tables(0).Rows(int).Item("PersonID")

I think It will solve your issue..just minor syntax variation may be present

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文