Designer を使用してデータ セットを作成しましたが、問題なくデータを取得できます。他のデータを更新した後、元の行のステータスを変更する必要があります。私は StackOverflow と MSDN を精査しましたが、提案されたすべてを試したと思います - 運が悪いです。
AFEDataSetTableAdapters.AFE_allTableAdapter taAFEAll = new AFEDataSetTableAdapters.AFE_allTableAdapter();
AFEDataSet.AFE_allDataTable dtAFEAll = new AFEDataSet.AFE_allDataTable();
taAFEAll.Fill(dtAFEAll, sAFENumber);
if (dtAFEAll.Count != 1)
{
// error condition - should only ever be one row
}
DataRow drAFE = dtAFEAll.Rows[0];
// ...すべてがうまくいけば...
if (...successful...)
{
drAFE.BeginEdit();
drAFE["AFEStatus"] = "Published";
drAFE.EndEdit();
try
{
drAFE.AcceptChanges();
int iTemp = taAFEAll.Update(dsAFE.AFE_all);
}
catch (Exception ex)
{
sMessage = ex.Message.ToString();
}
}
BeginEdit、EndEdit、AcceptChanges の有無にかかわらず試してみました。変化なし。メソッドが呼び出されると、.Update
drAFE の ItemArray が AFEStatus の変更された値を示していることが (デバッグで) わかります。ただし、Update はゼロを返し、データベースは変更されません。
DataSetDesigner の背後にあるコードを確認したところ、AFE_all テーブルに Update ステートメントが定義されています。
どこで私は間違えましたか?または、あと 1 ステップ足りないものはありますか?