1
 public void SetConnection(string text1, string text2, string text3, string text4, string text5, string text6, string text7)
    {


        connectionString1 = "Initial Catalog=testdb; Data Source=work\\sqlexpress";




        database = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source='c:\\Users\\test.xls';Extended Properties= \"Excel 8.0;HDR=Yes;IMEX=1\";");
        database.Open();
        database1 = new OleDbConnection("Provider=SQLOLEDB.1;" + connectionString1);
        database1.Open();
    }

data1 = DataAccess.DatabaseTables("SELECT * from [Sheet1$])", 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;
    }

data1 で始まるコード行で例外「from 句の構文エラー」が発生します。この行は、この例外を生成するその下の関数 DatabaseTables を呼び出します。fn SetConnection には、jet などを使用する接続文字列も含めました。問題は接続文字列自体にあると思います。現在、「復号化できませんでした」というエラーを防ぐために、Excel ファイルを開いたままにしておく必要があります。ACE ドライバーを試してみましたが、エラーが発生しました。Excel ブックは 97-03 ブックとして保存されます。

4

1 に答える 1