C#打开MDB数据问题求救
这个《库存_be.mdb》数据库是有其它N个客户端链接的,但是我用C#再链的时候就出错,用其它客户端ADO方式链接没问题,
Error: Microsoft Jet 数据库引擎打不开文件'\\server\databasen$\库存_be.mdb'。 它已经被别的用户以独占方式打开,或没有查看数据的权限。
[解决办法]
楼主,把数据库访问相关代码贴过来看下
[解决办法]
这个不好说,也许用某种语言底层共享了连接,支持多个客户端同时连接。
你可以用那种语言写一个代理,或者升级到sql server。
[解决办法]
访问的数据库的代码上下看看
[解决办法]
你需要把它放在设置了“windows的局域网共享”的文件夹下。
[解决办法]
access不是多用户数据库,所以同时访问应该不可靠,
[解决办法]
string MyConnctionString="";
OleDbConnection MyConnection = new OleDbConnection(MyConnctionString);
public DataTable ExecReader_Sql(string strCmdText)
{
OleDbCommand oleDbCommand = new OleDbCommand();
oleDbCommand.CommandTimeout = 7200;
OleDbDataAdapter oleDbDataAdapter = new OleDbDataAdapter();
DataTable dtRet = null;
try
{
oleDbCommand.Connection = MyConnection;
oleDbCommand.CommandText = strCmdText;
oleDbDataAdapter.SelectCommand = oleDbCommand;
if (MyConnection.State == ConnectionState.Closed)
{
MyConnection.Open();
}
dtRet = new DataTable();
oleDbDataAdapter.Fill(dtRet);
}
catch (Exception ex)
{
throw ex;
}
finally
{
oleDbDataAdapter.Dispose();
oleDbCommand.Dispose();
}
return dtRet;
}
连接字符串格式化函数
#region Oledb数据库连接字符串格式化
/// <summary>
/// Oledb数据库连接字符串格式化
/// </summary>
/// <param name="connectionString">Oledb数据库完整路径</param>
/// <returns>Oledb数据库连接字符串</returns>
public static string OledbConnStringFormat(string strOledbName)
{
string strOledbDir = System.IO.Path.GetDirectoryName(System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName) + @"";
return String.Format("Provider = Microsoft.Jet.OLEDB.4.0; Data Source = {0};", strOledbDir+strOledbName);
}
#endregion