0

使用 vb.net 和 sql server

所以我的数据集是这样的:

Dim ds3 As New FOCUSDataSetTableAdapters.GajiTableAdapter

我想将数据集中的项目放入一个数组中。但数据集现在是空的..所以我尝试..

Dim smp As New List(Of String)()

 Try
  For i = 0 To ds3.GetData.Count - 1
   If (ds3.GetData.Rows(0).Item(3) Is Nothing) Then
    smp.Add("0")
  End If

   Next
      Catch ex As Exception
        i = i - 1

        End Try

所以基本上我想要的是..如果数据库为空/空,则将“0”添加到数组中。但是每次我运行这段代码时,它只会给我一个错误状态,即当前位置(0)现在有一行......

4

2 回答 2

0

我猜(我猜)数据集不仅是空的,而且从未设置过。这将导致ds3.GetData.Count方法中出现空异常。

尝试在调试中运行它,并ds3检查ex.

于 2013-05-09T12:18:16.423 回答
0

您的代码应该是这样的(也许有必要进行更多修改 - 您的代码段无法测试):

Try
  dim tbl as DataTable=ds3.GetData()
  For i = 0 To tbl.Rows.Count - 1
   If (tbl.Rows(i).Item(3) Is DBNull.Value) Then
    smp.Add("0")
   End If

  Next
 Catch ex As Exception
        i = i - 1 'rather strange and probably causes endless loop

End Try

您应该知道该GetData方法返回一个 DataTable 并且您想要迭代它。重新考虑你的错误处理!

于 2013-05-09T12:54:17.827 回答