0

値の編集に使用できるデータバインディングフォームを作成する方法をインターネットで数日間検索しましたが、うまくいきませんでした。誰かが私を助けてくれたら本当にありがたいです!

値の読み取りは完全に機能しますが、更新/挿入は機能しません。

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"]を監視すると、フォームに値が返されることです。

ありがとうございました!

4

1 に答える 1

1

問題は、挿入と編集を同時に行いたかったことです。行が挿入状態の場合、更新をブロックすることに気づきませんでした。

解決:

ロード:

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);
于 2012-05-08T16:20:13.083 に答える