Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 复选框上的数据绑定_C#_Sql_Data Binding_Checkbox - Fatal编程技术网

C# 复选框上的数据绑定

C# 复选框上的数据绑定,c#,sql,data-binding,checkbox,C#,Sql,Data Binding,Checkbox,我目前正在将数据从我的一个SQL数据库拉入我的应用程序。我可以让它为我的文本框和其他项目工作,但是,我似乎不能让它为复选框工作。以下是我正在使用的代码: DataTable dt = new DataTable("dt"); using (SqlConnection sqlConn = new SqlConnection(@"Connection Stuff;")) { using (SqlDataAdapter da = new SqlDataAdapter("SELECT * FRO

我目前正在将数据从我的一个SQL数据库拉入我的应用程序。我可以让它为我的文本框和其他项目工作,但是,我似乎不能让它为复选框工作。以下是我正在使用的代码:

DataTable dt = new DataTable("dt");
using (SqlConnection sqlConn = new SqlConnection(@"Connection Stuff;"))
{
    using (SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM Box WHERE id = " + txtID.Text, sqlConn))
    {
        da.Fill(dt);
    }
}
Title.DataBindings.Add("text", dt, "title");
Picture.DataBindings.Add("text", dt, "image");
Side.DataBindings.Add("text", dt, "side");
Content.DataBindings.Add("text", dt, "content");
Check.DataBindings.Add(I dont know what to do here);
选中复选框与未选中复选框时存储在数据库中的数据分别为
0
1
。如果数据库中的值为
1
,则在应用程序加载时如何将其设置为checked;如果数据库中的值为
0
,则如何将其设置为unchecked

我尝试了以下方法:

0
1
存储在文本框中,并使用以下if语句:

Check.DataBindings.Add("text", dt, "check");
if (txtCheckValue.Text == 1)
{
    Check.Checked = true;
}
这种方法很有效,但我想知道是否有更有效的方法。希望遵循相同的
内容。DataBindings.Add()
格式,原因是我不希望我的应用程序有很多隐藏的文本框。

试试看

Check.DataBindings.Add("Checked", dt, "check");
第一个参数是控件的属性,因此您希望“选中”而不是“文本”

试一试

第一个参数是控件的属性,因此您希望“选中”而不是“文本”

这是正确的。但是有一件事你需要知道(我刚才花了半个小时),复选框需要验证(使用默认设置)。例如,它需要失去焦点

因此我发现更好的解决方案是:

Check.DataBindings.Add("Checked", dt, "check", false, DataSourceUpdateMode.OnPropertyChanged);
Check.DataBindings.Add("Checked", dt, "check", false, DataSourceUpdateMode.OnPropertyChanged);