注册 登录
编程论坛 ASP.NET技术论坛

Access数据库死锁该怎么解决?

xycj123 发布于 2008-10-28 11:07, 3327 次点击
网站采用Access数据库。网站肯定每天都有许多人访问。并且对数据的修改都很多。如果有很多人同时在线的话。总是出现数据库死锁问题。请问该怎么解决。请高手帮忙。我的数据库连接语句是这样写的。
Sub Page_Load(Src As Object, E As EventArgs)
connStr="Provider=Microsoft.Jet.Oledb.4.0;data source=" & server.MapPath("DataBase/123.mdb")
Conn=new OleDbConnection(connStr)
Conn.Open()
End Sub
死锁以后。提示的错误如下

“/”应用程序中的服务器错误。
--------------------------------------------------------------------------------

未指定的错误
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.Data.OleDb.OleDbException: 未指定的错误

源错误:


行 50:  Conn=new OleDbConnection();
行 51:  Conn.ConnectionString="Provider=Microsoft.Jet.OleDb.4.0;data source=" + Server.MapPath("../LiCai/DataBase/Nginv.mdb");
行 52:  Conn.Open();
但是它是完全正确的。几分钟以后请网站就可以访问正常。 请问高手该怎么解决!
3 回复
#2
zsf20062008-10-28 11:44
1、确保数据库连接正常
2、清除缓存,关闭所有窗口
3、重新打开页面
#3
铲铲2008-10-29 23:39
Access数据库几乎就无法解决并发访问的问题,它也没有事务可言。如果要一劳永逸地解决这个问题,考虑采用专业的数据库管理系统,如MSSQL,Oracle等等。而不要使用Access这一类小型文件型数据库。
另外,将从打开到关闭数据库之间的时间尽可能缩短(意思就是在什么都准备充足的情况下在连接数据库操作,尽快完成并关闭),这在一定程度上可以减少并发产生的异常。
如果你的网站涉及到一些操作,例如产生订单,这通常是一系列操作的组合——减库存数量、生成订单列表、划账等,这些操作要么都成功,要么都失败,他们是一个事务。如果遇到含有这一类型的操作,那么就根本不要选用Access了,它就没有提供解决事务的任何支持。
1