【问题标题】:DataBindings on a checkbox复选框上的数据绑定
【发布时间】:2012-07-25 18:53:29
【问题描述】:

我目前正在将数据从我的一个 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);

选中复选框和未选中复选框时存储在数据库中的数据分别为01。如果数据库中的值是1 并且当它是0 时未选中,我如何将它设置为在应用程序加载时检查?

我尝试了以下方法:

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

Check.DataBindings.Add("text", dt, "check");
if (txtCheckValue.Text == 1)
{
    Check.Checked = true;
}

这种方法可行,但我想知道是否有更有效的方法来做到这一点。希望遵循相同的Thing.DataBindings.Add() 格式,原因是我不希望我的应用程序有很多隐藏的文本框。

【问题讨论】:

    标签: c# sql data-binding checkbox


    【解决方案1】:

    试试

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

    第一个参数是控件的属性,所以不是“Text”,而是“Checked”。

    【讨论】:

      【解决方案2】:

      试试

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

      第一个参数是控件的属性,所以不是“Text”,而是“Checked”。

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

      所以我发现更好的解决方案是:

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

      【讨论】:

        猜你喜欢
        • 2011-08-28
        • 1970-01-01
        • 2015-07-22
        • 1970-01-01
        • 1970-01-01
        • 2011-02-09
        • 2012-09-17
        • 1970-01-01
        相关资源
        最近更新 更多