我有需要绑定到DataTable的复选框。问题是复选框在Oracle DB字段中存储“YES”和“NO”值,而不是布尔值。我如何绑定这些值?
这不起作用:
ChkInUse.DataBindings.Add("Checked", dtb, "IN_USE")
我收到错误:“字符串未被识别为有效的布尔值”。
编辑(我的完整代码):
Dim SQL As String = "SELECT * from MyTable WHERE ID=" & Form1.DataGridView1.CurrentRow.Cells(0).Value.ToString
Dim dtb As New DataTable()
Using con As OracleConnection = New OracleConnection("Data Source=MyDB;User Id=Lucky;Password=MyPassword;")
Try
con.Open()
Using dad As New OracleDataAdapter(SQL, con)
dad.Fill(dtb)
End Using
ChkInUse.DataBindings.Add("Checked", dtb, "IN_USE")
答案 0 :(得分:2)
由于您只是加载一行,我只需手动设置和获取它:
(dtb.Rows(0).Field(Of String)("IN_USE") = "YES")
CheckState
是一个表达式,产生一个布尔值,然后用于设置' early exit if there is no datatable yet or no rows
If dtb Is Nothing OrElse dtb.Rows.Count < 1 Then Return
dtb.Rows(0)("INUSE") = If(chkInUse.Checked, "YES", "NO")
。
然后在检查更改事件:
DataGridView
反过来:将表格文本设置为&#34; YES&#34; |&#34; NO&#34;取决于检查状态。
该表必须具有表单级别范围(问题中不清楚),您需要检查表是否有效以及表中是否有任何行(示出)。
如果你正在处理表格中的多行并且可能在CellFormatting
中显示它,那么你可以在CellParsing
和YES
事件中做一些非常相似的事情来来回翻译从_isDisabled: boolean;
@Input('myDisabled')
set isDisable(value: boolean) {
this._isDisabled = value;
this.disable();
}
到True / Checked。