Frage

Um eine Excel-Tabelle per SQL-Abfrage, habe ich entweder zu verwenden:

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

oder

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

Nun, das hat gut funktioniert, bis ich Office 2010 installiert ist.

Jetzt bekomme ich ein

  

Microsoft.ACE.OLEDB.12.0 Anbieter ist nicht auf diesem Computer registriert   Ausnahme.

Wie kann ich die richtige Verbindungszeichenfolge / Anbieter herausfinden?

War es hilfreich?

Lösung

Vielleicht deinstalliert Sie den Access-Datenbank-Engine (ACE) Komponenten? Sie sind nach wie vor zum Herunterladen von MSDN: 2007 Office System Driver:. Data Connectivity-Komponenten

Andere Tipps

Ich glaube, für Excel 2010 ist es:

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"

Dies scheint in meinem Visual Studio zu arbeiten, ich habe Excel den Abfrage-String zu erzeugen, und es hatte den zusätzlichen Eintrag in ihm.

Ich heruntergeladen und installierte Office System-Treiber: Datenkonnektivitätskomponenten, wie oben empfohlen - und der folgende Code gearbeitet:

    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();
    }
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top