如何避免异常VB.NET中没有位于行的位置

时间:2016-12-16 12:08:44

标签: asp.net vb.net

我有这个条件:

If IsNothing(ds.Tables(0).Rows(rowData).Item("DATE")) Then
Else
    txtDATE.Text = ds.Tables(0).Rows(rowData).Item("DATE")
End If

我做的是同样的错误。 我该如何解决这个问题?

2 个答案:

答案 0 :(得分:3)

  

我有一个循环,直到10,但我的数据集有时可以   少于10行。我想以dinamically和to创建TextBox控件   从数据集设置文本但是如果10行数据集没有数据   只是将TextBox的文本留空

然后使用If检查该条件:

For rowData As Int32 = 0 To 10
   ' .....
   If ds.Tables(0).Rows.Count > rowData Then
        Dim dt As Date? = ds.Tables(0).Rows(rowData).Field(Of Date?)("DATE")
        txtDATE.Text = If(dt.HasValue, dt.Value.ToString(), "")
   Else
       txtDATE.Text = ""
   End If
Next

我认为该列是可以为空的日期列(因为您正在使用IsNothing)。然后我更喜欢使用Date?,因此您可以使用支持可空类型的DataRowExtensions.Field

答案 1 :(得分:1)

您只能使用一个DataGridView控件,而不是10个文本框。

添加一列代表您的日期值(这也可以在设计师中完成)

Dim column As New DataGridViewTextBoxColumn With
{
    Header = "Date"
    DataPropertyName = "DATE"
}

yourDataGridView.Columns.Add(column)
yourDataGridView.AutoGenerateColumns = False

然后使用DataTable作为DataSource

yourDataGridView.DataSource = ds.Tables(0)

DataGridView将仅为DataTable中的现有数据生成行 您可以自定义DataGridView的“装备”。