我寫了一個簡單的測試來檢查我的dataAdapter代碼。我連接到SQL Server數據庫,填充一個數據表,連續更改一個值,然後調用da.Update(table)
將這些更改發送回SQL Server。該表有一個主鍵。一點也不知道爲什麼,這是不工作...(見代碼)C#DataAdapter,DataTable - >不更新回SQL Server表
connectionToSQL = new SqlConnection(SQLConnString);
connectionToSQL.Open();
var wktbl = new DataTable();
var cmd = new SqlCommand("SELECT * FROM TAGS$",connectionToSQL);
var da = new SqlDataAdapter(cmd);
var b = new SqlCommandBuilder(da);
da.Fill(wktbl);
wktbl.Rows[3][2] = "5";
wktbl.AcceptChanges();
da.Update(wktbl);
你不能這樣更新。在填充數據表中的值之後,您對數據表所做的任何更改純粹只涉及它。而且你又需要編寫一些查詢來進行類似的更新選擇。並調用ExecuteNonQuery()來執行更新。 –
http://www.java2s.com/Code/CSharp/Database-ADO.net/UpdatetableusingSqlDataAdapter.htm – Thinhbk
@skk:'SqlDataAdapter'自動構建UPDATE查詢,'da.Fill'應該使用它來更新數據庫。 @ user1051076這可能是'AcceptChanges'的調用,它打破了這一點,因爲它將所有的行狀態重置爲不變...... –