填充表单时,从DB中捕获空字段的最有效方法是什么?
方法1尝试捕获
Try
txtKPIName.Text = ds.Tables(0).Rows(0)("Name")
Catch ex As Exception
txtKPIName.Text = ""
End Try
方法2 isDBNull
txtKPIName.Text = IIf(IsDBNull(ds.Tables(0).Rows(0)("Name")), "", ds.Tables(0).Rows(0)("Name"))
你们有什么想法?
答案 0 :(得分:2)
DataRow(index).ToString()
将返回DbNull
值的空字符串 - 因此您可以使用其中一种方法
txtKPIName.Text = ds.Tables(0).Rows(0).Field(Of String)("Name")
或者
txtKPIName.Text = ds.Tables(0).Rows(0)("Name").ToString()
如果您希望将条件与if .. else
一起使用 - 那么请使用DataRow.IsNull
方法和If
方法获取一行if
语句
Dim row = ds.Tables(0).Rows(0)
txtKPIName.Text = If(row.IsNull("Name"), "default value", row.Field(Of String)("Name"))
答案 1 :(得分:2)
看看null-Conditional Operators。它们非常优雅,可以防止ifs级联。
var stuff = ds?.Tables(0)?.Rows(0)?.("Name");