我已經通過設計器創建了一個數據集,並且我能夠很好地檢索數據。在對其他數據做一些更新之後,我需要更改原始行中的狀態。我搜颳了StackOverflow和MSDN,我想我已經嘗試了所有建議 - 沒有運氣。在SQL Server數據庫中沒有更新數據集更改
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的更改值。然而,更新返回0,並且數據庫不會更改。
我在DataSetDesigner後面的代碼中進行了驗證,並且AFE_all表中定義了一條Update語句。
我哪裏錯了?或者,我錯過了什麼更多的步驟?
忘了提 - 我已經證實,直接SQL更新語句會改變數據庫,使用定義的數據集時,我提供的憑據。 (雖然我不確定如何驗證這些是什麼......) – 2013-04-24 21:24:31