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' は、'dataAdapter.Fill(data);' で例外を呼び出す関数 DatabaseTables を呼び出します。問題は、自分のマシンへのアクセスにある可能性があると思います。以前のバージョンであるため、私のマシンでは 2013 年に mdb が開きません。Access 2007 ランタイムをインストールしました。それを開くと、この属性を変更する必要があるのは読み取り専用であると表示されました。次に、管理者として Access 2013 を開こうとしましたが、office 2013 自体がいくつかの再構成を行い、現在、この mdb ファイルは常に Access 2013 で開こうとします。Access 2007 を再インストールしようとします。これはアクセスの問題ではないかもしれませんが、コードまたは 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 に答える