有谁知道当用SqlDataAdapter.Update()更新数据库时,抛出的异常(并发冲突:UpdateCommand 影响 0 个记录)是如何产生的?
有谁知道当用SqlDataAdapter.Update()更新数据库时,抛出的异常(并发冲突:UpdateCommand 影响 0 个记录)是如何产生的?
代码如下:
...
DataTable dt = new DataTable();
sqlDataAdapter.Fill( dt );
SqlCommand sqlCommandUpdate = sqlCon.CreateCommand();
sqlCommandUpdate.CommandText = "update table1 set aaa=@aaa,bbb=@bbb,ccc=@ccc " +
"where (aaa=@aaa_) and (bbb=@bbb_) and (ccc=@ccc_)";
sqlCommandUpdate.Parameters.Add( "@aaa", SqlDbType.Int, 10, "aaa" );
sqlCommandUpdate.Parameters.Add( "@bbb", SqlDbType.Char, 50, "bbb" );
sqlCommandUpdate.Parameters.Add( "@ccc", SqlDbType.VarChar, 50, "ccc" );
sqlCommandUpdate.Parameters.Add( "@aaa_", SqlDbType.Int, 10, "aaa" );
sqlCommandUpdate.Parameters["@aaa_"].SourceVersion = DataRowVersion.Original;
sqlCommandUpdate.Parameters.Add( "@bbb_", SqlDbType.Char, 50, "bbb" );
sqlCommandUpdate.Parameters["@bbb_"].SourceVersion = DataRowVersion.Original;
sqlCommandUpdate.Parameters.Add( "@ccc_", SqlDbType.VarChar, 50, "ccc" );
sqlCommandUpdate.Parameters["@ccc_"].SourceVersion = DataRowVersion.Original;
sqlDataAdapter.UpdateCommand = sqlCommandUpdate;
dt.Rows[0]["ccc"] = DateTime.Now.ToLongTimeString();
sqlDataAdapter.Update( dt );
...