我有一些DataGridViews,每个DataGridViews都显示一个来自具有多个DataTables的DataSet的DataTable。
将新行添加到DataGridView并将其保存到DataSet时,bool列具有System.DBNull-Value,稍后会导致异常(在其他应用程序中读取DataSet时)。
只有选中我的bool列中的复选框然后取消选中时,保存DataSet时它的有效值为false。
如何确保复选框列在将其添加到DataGridView或保存时始终具有默认值false?
答案 0 :(得分:2)
您使用的是存储过程吗?如果是这样,您可以在其中设置默认值或为数据库中的列设置默认值。
另一种方法是分配DataTable.Column的DefaultValue属性
您使用DataColumn对象的DefaultValue属性。
' Set default values. '
With myDataSet.Tables("Orders")
.Columns("Order_Date").DefaultValue = Today
.Columns("Quantity").DefaultValue = 1
. . .
End With
' Add the new row. '
Dim aNewRow As DataRow = myDataSet.Tables("Orders").NewRow
myDataSet.Tables("Orders").Rows.Add(aNewRow)
您还可以在每次添加行时指定值:
' Create a new row, set its values and add it. '
Dim aNewRow As DataRow = myDataSet.Tables("Orders").NewRow
With myDataSet.Tables("Orders")
.Columns("Order_Date") = Today
.Columns("Quantity") = 1
. . .
.Rows.Add(aNewRow)
End With
答案 1 :(得分:0)
在DataSet设计器中,您可以选择DataTable列并将AllowDBNull设置为false,将DefaultValue设置为False。这样,该值将为false而不是DBNull。