1.與DataAdapter對象相連接的DataSet對象使用樂觀鎖來處理記錄內容沖突
2.如果使用用戶存儲過程來替代表操作的話,並發問題的處理還需要一些額外的工作
3.Data Adapter配置向導能夠創建存儲過程來處理這個問題
4.當ContinueUpdateOnError為false(缺省值)時,在發生第一個沖突的時候會拋出DBConcurrencyException異常
5.捕獲該異常並且通知用戶,或者處理該異常或提示用戶下一步需要做出哪些選擇
1
DataSet changes = myDataSet.GetChanges();
2
3
try
4

{
5
MySQLDataAdapter.Update(changes);
6
myDataSet.Merge(changes);
7
}catch(DBConcurrencyException e)
8

{
9
//通知用戶記錄從上次更新到現在已經發生過變化,放棄更新
10
}
11
finally
12
更高級的操作模型:
1
DataSet changes = myDataSet.GetChanges();
2
3
try
4

{
5
MySQLDataAdapter.ContinueOnError = true;
6
MySQLDataAdapter.Update(changes);
7
if(changes.HasErrors)
{
8
//獲取錯誤
9
DataRow[] collisions = changes.Tables[0].GetErrors();
10
//處理錯誤
11
}