需要复选框上的C#WinForms数据绑定帮助

时间:2019-02-05 19:17:33

标签: c# winforms checkbox data-binding

我的复选框在选中时不会导致绑定源更改。

我有一个绑定到SQL表(定义为TinyInt)的复选框,如下所示:

        // 
        // overrideCheckBox
        // 
        this.overrideCheckBox.CausesValidation = false;
        this.overrideCheckBox.DataBindings.Add(new                   
           System.Windows.Forms.Binding("CheckState", this.ProcessingBindingSource, "rtoverride", true));
        this.overrideCheckBox.Location = new System.Drawing.Point(354, 378);
        this.overrideCheckBox.Name = "overrideCheckBox";
        this.overrideCheckBox.Size = new System.Drawing.Size(104, 24);
        this.overrideCheckBox.TabIndex = 70;
        this.overrideCheckBox.Text = "Override";
        this.overrideCheckBox.UseVisualStyleBackColor = true;
        this.overrideCheckBox.Visible = false;

在表适配器中定义为System.Byte。

我正在使用此代码进行保存:

        this.ProcessingBindingSource.EndEdit();
        this.ProcessingTableAdapter.Update(rMSDataSet);
        myDataSet.AcceptChanges();

除我的复选框外,所有其他字段均保存。我将绑定源检查回到表中,除了ProcessingBindingSource->当前行-> rtoverride并未更改以反映出checked = 1的新值,一切似乎都正确。

某事不正确,我正在尝试通过以下方式对其进行破解:

      if (overrideCheckBox.Checked)
        {
           // in the ProcessingBindingSource at ProcessingBindingSource.Position change the value from 0 to 1
        }
        this.ProcessingBindingSource.EndEdit();
        this.ProcessingTableAdapter.Update(rMSDataSet);
        myDataSet.AcceptChanges();

这不是很漂亮,也不是最好的方法,但是我必须把它做好,但我搞不清语法。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

这是史诗般的丑陋,所以如果可以使用它,就可以去这里

数据库已更改,我删除了数据集子文件并运行自定义工具,但这还不够。因此,我删除了数据集,在数据集设计器中编辑了查询,重新生成了Insert / Update / etc命令,再次删除了数据集并运行了自定义工具。可行。

问题在于代码生成器未生成新列,这是弄清楚下一步内容的关键。