一尘不染

将SQL中的是/否/空从SQL转换为数据表中的True / False

sql

我有一个Sql数据库(该数据库无法控制架构),该数据库的Column的varchar值为“ Yes”,“
No”,否则将为null。出于我正在做的目的,null将被视为No。

我正在使用数据表和表适配器在c#net 3.5中进行编程,以提取数据。我想使用绑定源将列直接绑定到程序中的复选框,但是我不知道如何或在何处放置将字符串Yes
/ No / null转换为布尔值True / False的逻辑;

从SQL Server读取null并在更新中写回No是可接受的行为。

任何帮助是极大的赞赏。

编辑-这是为Windows开发的。


阅读 123

收藏
2021-05-23

共1个答案

一尘不染

我最初使用的是Dathan的解决方案,但是我的复选框不会将其更新推送到它绑定到的数据表上,同时尝试解决我发现的问题Binding.ParseBinding.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;
}
2021-05-23