将Databound WinForm数据插入数据库

时间:2012-05-07 20:51:19

标签: c# winforms data-binding

我在互联网上搜索了几天如何创建一个可用于编辑值的数据绑定表单,但没有运气。如果有人可以帮助我,我真的很感激!

读取值完美无缺,但更新/插入不起作用。

FormLoad:

newRow = issueTable.NewRow();
newRow["ID"] = Id;
issueTable.Rows.Add(newRow);
txtName.DataBindings.Add("Text", issueTable, "Name");

保存:

SqlCommandBuilder build = new SqlCommandBuilder(adaptor);
adaptor.InsertCommand = build.GetInsertCommand();
adaptor.Update(issueTable);

我的问题是在SQL表中:“ID”存储,但“Name”保持为null。对我来说奇怪的是,如果我监视issueTable.Rows [0] [“Name”],它将返回Form上的值。

谢谢!

1 个答案:

答案 0 :(得分:1)

问题是我想同时插入和编辑。我没有意识到如果一行处于Insert状态,它会阻止更新。

解决方案:

负载:

newRow = issueTable.NewRow();
newRow["ID"] = Id;
issueTable.Rows.Add(newRow);
txtName.DataBindings.Add("Text", issueTable, "Name");
newRow.AcceptChanges(); //Remove the Insert State, to accept modifications
isNew = true;

保存:

if (isNew)
{
    newRow.SetAdded(); //Add the Insert State back
    isNew = false;
}

SqlCommandBuilder build = new SqlCommandBuilder(adaptor);
adaptor.InsertCommand = build.GetInsertCommand();
adaptor.UpdateCommand = build.GetUpdateCommand();
adaptor.Update(issueTable);