关于asp.net对数据库并发控制的问题!!

来源:百度知道 编辑:UC知道 时间:2024/04/29 04:31:48
如果一个网站,有几个人在同一时间修改数据库的一个表里的同一个字段,在asp.net里怎么办?能否把我以下这段代码改一下?
OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source =" + Server.MapPath(".") + "/db/du.mdb");
con.Open();
OleDbCommand cmd_fangwencishu = new OleDbCommand("update fangwencishu set llcishu=llcishu+1", con);
cmd_fangwencishu.ExecuteNonQuery();

整数 - 秀才 三级 的回答最准确,数据库管理系统不是摆设,哈哈。
你这个并发问题并不典型,网站的访问次数每次加一总是不会错,除非数据库服务器的负载能力远远弱于网站访问量。
一个程序员要处理的典型问题是网上商店,用户看到的货品数量,可能已经改变过,这才需要更新前检查,或者用使用了数据库事务处理的存储过程。

可以使用ADO事务处理避免脏读
OleDbTransaction qdt;
OleDbConnection con;
try
{

con = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source =" + Server.MapPath(".") + "/db/du.mdb");
con.Open();
con.BeginTransaction(qdt);
OleDbCommand cmd_fangwencishu = new OleDbCommand("update fangwencishu set llcishu=llcishu+1", con);
cmd_fangwencishu.ExecuteNonQuery();
qdt.Commit();
con.Close();
}
catch(OleDbException e)
{
qdt.Rollback();
con.Close();
}

楼主的代码