我有这个条件:
If IsNothing(ds.Tables(0).Rows(rowData).Item("DATE")) Then
Else
txtDATE.Text = ds.Tables(0).Rows(rowData).Item("DATE")
End If
我做的是同样的错误。 我该如何解决这个问题?
答案 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的“装备”。