Nat*_*han 1 c# sql data-binding checkbox
我目前正将我的一个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);
Run Code Online (Sandbox Code Playgroud)
存储在数据库中,当被选中该复选框选中对比的是数据0和1respectivly.如果数据库中的值是,1并且取消选中,则如何在应用程序加载时将其设置为检查0?
我尝试过以下方法:
将0或存储1在文本框中并使用以下if语句:
Check.DataBindings.Add("text", dt, "check");
if (txtCheckValue.Text == 1)
{
Check.Checked = true;
}
Run Code Online (Sandbox Code Playgroud)
这种方式有效,但我想知道是否有更有效的方法来做到这一点.Hopefuly遵循相同的Thing.DataBindings.Add()格式,因为我不希望我的应用程序有很多隐藏的文本框.
尝试
Check.DataBindings.Add("Checked", dt, "check");
Run Code Online (Sandbox Code Playgroud)
第一个参数是控件的属性,因此您需要"已检查"而不是"文本".
小智 6
尝试
Run Code Online (Sandbox Code Playgroud)Check.DataBindings.Add("Checked", dt, "check");第一个参数是控件的属性,因此您需要“Checked”而不是“Text”。
这是对的。但是你需要知道的一件事(刚才花了我半个小时),复选框需要验证(使用默认设置)。例如,它需要失去焦点。
所以我发现更好的解决方案是:
Check.DataBindings.Add("Checked", dt, "check", false, DataSourceUpdateMode.OnPropertyChanged);
Run Code Online (Sandbox Code Playgroud)