質問

SQL経由でExcelシートを照会するには、私はどちらかを使用するために使用ます:

Dim excelConnectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + strPath + ";Extended Properties=""Excel 8.0;IMEX=1;HDR=YES;"""

または

Dim excelConnectionString As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source= " + strPath + ";Extended Properties=""Excel 12.0;IMEX=1;HDR=YES;"""
私はOffice 2010のインストールまで、

さて、これはうまく働いています。

今、私が取得

  

Microsoft.Ace.OLEDB.12.0プロバイダは、このマシンに登録されていません   例外ます。

どのように正しい接続文字列/プロバイダを見つけることができますか?

役に立ちましたか?

解決

おそらくあなたは、Accessデータベースエンジン(ACE)のコンポーネントをアンインストール?彼らはまだ<のhref =「http://www.microsoft.com/downloads/details.aspx?familyid=7554F536-8C28-4598-9B72-EF94E038C891&displaylang=en」のrel =「nofollowをnoreferrer」としてMSDNからダウンロードできます> 2007 Office Systemのドライバー:データ接続コンポーネントの

他のヒント

私は信じているExcelの2010年のことです。

Dim excelConnectionString As String = "Provider=Microsoft.ACE.OLEDB.12.0;Password="""";User ID=Admin;Data Source=D:\\MyDocs\\oledb.xlsx;Mode=Share Deny Write;Extended Properties=""HDR=YES;"";Jet OLEDB:Engine Type=37"

これは私のVisual Studioで動作しているように見えます、私は、クエリ文字列を生成するために、Excelを持って、それはそれで余分なエントリを持っています。

私はダウンロードしてインストールOffice Systemのドライバ:上記のアドバイスとして、データ接続コンポーネント - 以下のコードを働いていた。

    string connectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Password=\"\";User ID=Admin;Data Source=d:\\Sample.xlsx;Mode=Share Deny Write;Extended Properties=\"HDR=YES;\";Jet OLEDB:Engine Type=37";

    OleDbConnection connection = new OleDbConnection(connectionString);

    try
    {
        connection.Open();

        OleDbCommand command = new OleDbCommand("SELECT * FROM [Sheet1$]", connection);
        OleDbDataAdapter adapter = new OleDbDataAdapter();
        adapter.SelectCommand = command;

        DataSet ds = new DataSet();
        adapter.Fill(ds);

        GridView1.DataSource = ds;
        GridView1.DataBind();

    }
    catch (Exception)
    {            
        //throw;
    }
    finally
    {
        connection.Close();
    }
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top