我有一个Sql数据库(该数据库无法控制架构),该数据库的Column的varchar值为“ Yes”,“ No”,否则将为null。出于我正在做的目的,null将被视为No。
我正在使用数据表和表适配器在c#net 3.5中进行编程,以提取数据。我想使用绑定源将列直接绑定到程序中的复选框,但是我不知道如何或在何处放置将字符串Yes / No / null转换为布尔值True / False的逻辑;
从SQL Server读取null并在更新中写回No是可接受的行为。
任何帮助是极大的赞赏。
编辑-这是为Windows开发的。
我最初使用的是Dathan的解决方案,但是我的复选框不会将其更新推送到它绑定到的数据表上,同时尝试解决我发现的问题Binding.Parse,Binding.Format现在我将查询保持正常并使用此方法:
Binding.Parse
Binding.Format
Public Form1() { InitializeComponent(); cbxKeepWebInfinityChanges.DataBindings["Checked"].Parse += new ConvertEventHandler(cbxKeepWebInfinityChanges_Parse); cbxKeepWebInfinityChanges.DataBindings["Checked"].Format += new ConvertEventHandler(cbxKeepWebInfinityChanges_Format); } void cbxKeepWebInfinityChanges_Parse(object sender, ConvertEventArgs e) { if ((bool)e.Value == true) e.Value = "Yes"; else e.Value = "No"; } void cbxKeepWebInfinityChanges_Format(object sender, ConvertEventArgs e) { if ((string)e.Value == "Yes") e.Value = true; else e.Value = false; }