2016-04-22 81 views
-2

我知道如何做到这一点,但我想知道最佳实践...如何检查字段为空

我去从表中获取一行数据。其中一些字段可以是NULL。我正在为每个字段使用if语句,如果它不是NULL,则根据需要填充文本框或标签。

这对我来说似乎很麻烦,但我想不出一个更好的方法来检查空值并采取相应的行动。

这是否有意义?有没有更好的办法?

+0

@KhairulIslam OP是要求VB.NET的解决方案,这将是[IF()](http://stackoverflow.com/a/403453/1115360)运算符。 –

+1

您应该向我们展示数据库查询和适当的VB.NET代码(的示例)。 –

回答

0

由于vb.net 14最好的方法是使用?

使用Visual Basic 14你可以优雅地处理 空这样的可能性,使用新的?运营商:

Console.WriteLine("{0} ({1})", 
    customer.Name, 
    customer.Address?.Country) 

Link to vb.net article.

Link to c# article.

0

如果您正在使用一个SqlDataReader来处理一个SqlCommand,那么你可以检查SqlDataReader.IsDBNull财产。下面是一个真实的例子:

Try 
     Using con = New SqlConnection(dbConnectString) 
      Using cmd = New SqlCommand("usp_GetValue", con) 
       cmd.Parameters.Add("@nvcKey", SqlDbType.VarChar).Size = key.Length 
       cmd.Parameters("@nvcKey").Value = key 
       con.Open() 
       Using reader As SqlDataReader = cmd.ExecuteReader() 
        If reader.Read() Then 
         If Not reader.IsDBNull(1) Then ExpriryDateUTC = reader.GetDateTime(1) 
         AllowMemoryCache = reader.GetBoolean(2) 
         If reader.IsDBNull(0) Then 
          value = Nothing 
          Return False 
         Else 
          value = DeserializeDataContractOjectFromXML(Of T)(reader.GetString(0)) 
          Return True 
         End If 
        Else 
         Return False 
        End If 
       End Using 
      End Using 
     End Using 
    Catch ex As Exception 
     Return False 
    End Try