日期:2014-05-16  浏览次数:21304 次

C#如何打开别人以排他方式打开的Access数据库
本帖最后由 qjw795 于 2013-04-23 09:42:02 编辑
各位大侠,大家好,小弟现有一棘手问题急求答案。
我现在做的一个项目A需要用到别的程序B的Access数据库,但一旦B程序打开,他就会以排他方式打开我们共同使用的Access数据库,导致我的程序A连接数据库失败。我在网上查了一些资料,有人说程序A可以以只读的方式打开被排他打开的数据库,我想问这样行的通吗,其实我也就是想读取里面的数据而已。如果可以的话,数据库的操作类该怎样改呢,我现在的连接函数如下:

private void Open(String DBpath)
{
    string strConn;
    strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:DataBase Password=qW;Data Source=" + DBpath + ";Mode=Share Deny Read|Share Deny Write;";
    if (con == null)
        con = new OleDbConnection(strConn);
    if (con.State == ConnectionState.Closed)
        con.Open();
}
C# 数据库 access

------解决方案--------------------
 strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Jet OLEDB:DataBase Password=qW;Data Source=" + DBpath + ";"

什么都不加试一下。
------解决方案--------------------
只读:
Mode=Read
独占方式:
Mode=Share Deny Read
------解决方案--------------------
Share Deny Write