0
我使用C#和Devart.Data.MySql更新數據庫表中的行。但我有例外Devart.Data.MySql:併發衝突:UpdateCommand影響了預期的1個記錄中的0個
併發衝突:在更新命令影響的預期的1個 記錄
0,而試圖用相同的值更新的行。例如我有兩列Id(主鍵)和標題表格數據。我在這張表中有一行Id = 222,Title = 4444。然後我試圖用相同的值更新這一行:
using (var conn = new MySqlConnection(Cs))
{
conn.Open();
//update command
var uc = new MySqlCommand(@"UPDATE data SET Title = @Title WHERE Id = @Id", conn);
uc.Parameters.Add("@Title", MySqlType.VarChar, 50, "Title");
uc.Parameters.Add("@Id", MySqlType.VarChar, 50, "Id");
//create adapter
var adapter = new MySqlDataAdapter("", conn)
{
UpdateBatchSize = 100,
UpdateCommand = uc
};
adapter.TableMappings.Add("Table", "data");
//create table
var table = new DataTable("data");
DataColumn col = table.Columns.Add("Id", typeof(string));
col.Unique = true;
table.PrimaryKey = new[] { col };
table.Columns.Add("Title", typeof(string));
//create dataset
var ds = new DataSet();
ds.Tables.Add(table);
DataRow row = table.NewRow();
row["Id"] = "222";
row["Title"] = "4444";
table.Rows.Add(row);
row.AcceptChanges();
row.SetModified();
adapter.Update(ds);
}
之後我在這裏有關於併發衝突的例外。如果我使用標題的另一個值,它工作正常。它看起來像沒有一些時間戳或修改值,我不能執行更新命令與相同的值。爲什麼?