Microsoft Jet 数据库引擎打不开文件'G:\WebRoot\CarBuyer\Cars.mdb'。 它已经被别的用户以独占方式打开,或没有查看数据的权限。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.OleDb.OleDbException: Microsoft Jet 数据库引擎打不开文件'G:\WebRoot\CarBuyer\Cars.mdb'。 它已经被别的用户以独占方式打开,或没有查看数据的权限。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.Data.OleDb.OleDbException: Microsoft Jet 数据库引擎打不开文件'G:\WebRoot\CarBuyer\Cars.mdb'。 它已经被别的用户以独占方式打开,或没有查看数据的权限。
namespace CarBuyer
{
/// <summary>
/// Summary description for DataSource.
/// </summary>
public class CarsDataSet
{
private DataSet mvarDataSet;
private OleDbConnection mvarConnection; public CarsDataSet(string DataBaseFileName)
{
string ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Password=\"\";User ID=Admin;Data Source=" + DataBaseFileName + ";Mode=Share Deny None;Extended Properties=\"\";Jet OLEDB:System database=\"\";Jet OLEDB:Registry Path=\"\";Jet OLEDB:Database Password=\"\";Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password=\"\";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False";
this.Connection = new OleDbConnection(ConnectionString);
} public OleDbConnection Connection
{
get { return mvarConnection; }
set { mvarConnection = value;
GetTables();
}
} void GetTables()
{
OleDbCommand sc = new OleDbCommand();
DataTable dt; mvarDataSet = new DataSet("Cars"); sc.Connection = mvarConnection;
mvarConnection.Open(); sc.CommandType = CommandType.TableDirect; GetTable(sc, "Manufacturers");
GetTable(sc, "Models");
GetTable(sc, "Options");
GetTable(sc, "Colors"); DataRelation dr;
dr = new DataRelation("Cars", Manufacturers.Columns["ID"], Models.Columns["ManufacturerID"], false);
mvarDataSet.Relations.Add(dr); }
void GetTable(OleDbCommand sc, string TableName)
{
OleDbDataAdapter da = new OleDbDataAdapter();
sc.CommandText = TableName;
da.SelectCommand = sc;
da.Fill(mvarDataSet, TableName);
} public DataTable Manufacturers
{
get { return mvarDataSet.Tables["Manufacturers"];}
} public DataTable Options
{
get {return mvarDataSet.Tables["Options"]; }
} public DataTable Colors
{
get {return mvarDataSet.Tables["Colors"]; }
} public DataTable Models
{
get {return mvarDataSet.Tables["Models"]; }
}
public DataSet ManufacturerToModelHierarchy
{
get {return mvarDataSet;}
}
}}
在下面这个位置出错
行 35:
行 36: sc.Connection = mvarConnection;
行 37: 错误 mvarConnection.Open();
行 38:
行 39: sc.CommandType = CommandType.TableDirect
2。if it needs password, 设置连接的 Jet OLEDB:Database Password=你的密码also 参考
http://www.connectionstrings.com/http://www.microsoft.com/technet/prodtechnol/office/office2000/proddocs/opg/part4/ch18.mspx
原来是连接字符串太多的缘故。呵呵,感谢各位的参与,尤其是saucer(思归) 大侠的提示。