0

我通常使用SqlDataAdapter该类从 SQL Server 检索数据以在 .NET 应用程序中使用。几乎同样常见的是,在遍历返回的对象时,DataSet我经常遇到空对象异常,因为单元格包含在 VB.NETDbBull中转换为的 a。Nothing

自然,最好将空单元格存储为空单元格NULLNVARCHAR某些此类数据类型。

将这些 DbNull 转换为 VB.NET 中的对象的最佳实践是什么(假设有一个)。它最常见的是一个空字符串,但每种数据类型都有自己的“最合适”的“空”值?

这里的目标是,我不想用垃圾填充我的数据库,也不想让我的应用程序在遇到 a 时中断DbNull,也不想做这样愚蠢的事情......

不受欢迎的解决方案!

For Each row As DataRow In dt.Rows
    Dim cell1 As String = If(IsDBNull(row(0)), "", row(0).ToString)
    Dim cell2 As String = If(IsDBNull(row(1)), "", row(1).ToString)
    Dim cell3 As String = If(IsDBNull(row(2)), "", row(2).ToString)

    Response.Write(String.Format("Cell1: {0}, Cell2: {1}, Cell3: {2}<br />", & _
                   {cell1, cell2, cell3})
Next

想象一下,如果我有 50 列,那么在使用它们之前检查所有这些会很麻烦。如果存在,我想要一个更智能的解决方案。

旁注

在 SQL Server 中,很容易做类似的事情,但并不完全相同。我通常使用类似isnull(@value,@value)的方法来确保将空值捕获为我的数据集的一部分。

4

1 回答 1

0

尝试这个:

Dim sValue as String = ""
sValue = If(cmdComanda.ExecuteScalar(), String.Empty)
于 2015-01-23T20:00:46.333 回答