0
 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 设置我的连接字符串并且连接正常。然后“data1”调用函数 DatabaseTables,该函数在“dataAdapter.Fill(data);”处调用异常。我认为问题可能是我在我的机器上的访问。mdb 不会在 2013 年在我的机器上打开,因为它是早期版本。我安装了访问 2007 运行时。打开它,它说它是只读的,我需要更改此属性。然后我尝试以管理员身份打开 access 2013,office 2013 自己做了一些重新配置,现在这个 mdb 文件总是试图在 access 2013 中打开。我现在将尝试重新安装 access 2007。我是否可能需要卸载 access 2013 或者是这可能根本不是访问问题,但可能是我的代码或 mdb 本身的问题。

4

1 回答 1

1
"Provider=Microsoft.ACE.OLEDB.12.0;Data Source= u:\\Clients Information pats_30may13.accdb;Jet OLEDB:Database Password=MyDbPassword;";

我将源访问数据库升级为 accdb 格式,并确保我可以在自己的计算机上打开这个数据库,而不是在服务器上。我收到一条通知,说升级时出现了一些错误,但看起来还可以。然后我使用上面的连接字符串解决了这个问题。

于 2013-05-31T10:45:55.970 回答