public void SetConnection(string text1, string text2, string text3, string text4, string text5, string text6, string text7)
{
string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source= c:\Users\Clients Information pats.mdb";
database = new OleDbConnection(connectionString);
database.Open();
}
data1 = DataAccess.DatabaseTables("SELECT * from [CLIENTS]", DataAccess.database);
public DataTable DatabaseTables(string QueryString, OleDbConnection DataConnection)
{
OleDbCommand SQLQuery = new OleDbCommand();
DataTable data = null;
SQLQuery.Connection = null;
OleDbDataAdapter dataAdapter = null;
SQLQuery.CommandText = QueryString;
SQLQuery.Connection = DataConnection;
data = new DataTable();
dataAdapter = new OleDbDataAdapter(SQLQuery);
dataAdapter.Fill(data);
return data;
}
在标题中列出了一个奇怪的错误。Setconnection设置我的连接字符串和连接ok。然后'data1'调用DatabaseTables函数,该函数在'dataAdapter.Fill(data);'处调用异常。我想问题可能出在我的电脑上。mdb将无法在2013年在我的机器上打开,因为它是一个较早的版本。我安装了access 2007运行时。打开它,它说它是只读的,我需要改变这个属性。然后我试图打开access 2013作为管理员,office 2013自己做了一些重新配置,现在这个mdb文件总是试图在access 2013中打开。我现在将尝试重新安装access 2007。是否有可能我需要卸载访问2013,或者这可能不是访问问题,但可能是我的代码或mdb本身的问题。我从服务器上复制了这个mdb文件,它在那台机器上访问2007打开但它试图增强它,因为它显然是一个更早的版本
"Provider=Microsoft.ACE.OLEDB.12.0;Data Source= u:\Clients Information pats_30may13.accdb;Jet OLEDB:Database Password=MyDbPassword;";
我将源访问数据库升级为accdb格式,并确保我可以在我自己的计算机上打开这个数据库,而不是在服务器上。我收到了一个通知,说升级过程中出现了一些错误,但看起来还好。然后我使用了上面的连接字符串这就解决了问题。