Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

C#: ODBC Verbindung zu Excel

Empfohlene Antworten

Veröffentlicht

Also ich probiere gerade ein bisschen mit ODBC rum mit hilfe von C#.Net das im Visual Studio 2005 vorhanden ist.

Nun bekomme ich den Connectionstring irgendwie nicht hin!

        OdbcConnection dbconnection = new OdbcConnection("Driver={Microsoft Excel Driver (*.xls)};DriverId=790;Dbq=C:\\Dokumente und Einstellungen\\Benutzer\\Eigene Dateien\\2007_1213 adressen buchhaltung.xls;DefaultDir=C:\\Dokumente und Einstellungen\\Benutzer\\Eigene Dateien");

        dbconnection.Open(); //öffnen der Verbindung

Es kommt immer folgende Meldung:

System.Data.Odbc.OdbcException wurde nicht behandelt.

Message="ERROR [HY000] [Microsoft][ODBC Excel Driver] Datenbank '(unbekannt)' konnte nicht geöffnet werden. Entweder wird die Datenbank nicht von Ihrer Anwendung erkannt, oder die Datei ist beschädigt.\r\nERROR [iM006] [Microsoft][ODBC Driver Manager] Fehler bei SQLSetConnectAttr-Aufruf für Treiber\r\nERROR [HY000] [Microsoft][ODBC Excel Driver] Datenbank '(unbekannt)' konnte nicht geöffnet werden. Entweder wird die Datenbank nicht von Ihrer Anwendung erkannt, oder die Datei ist beschädigt."

Source=""

ErrorCode=-2146232009

StackTrace:

bei System.Data.Odbc.OdbcConnection.HandleError(OdbcHandle hrHandle, RetCode retcode)

bei System.Data.Odbc.OdbcConnectionHandle..ctor(OdbcConnection connection, OdbcConnectionString constr, OdbcEnvironmentHandle environmentHandle)

bei System.Data.Odbc.OdbcConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject)

bei System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection, DbConnectionPoolGroup poolGroup)

bei System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)

bei System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)

bei System.Data.Odbc.OdbcConnection.Open()

bei Versuchsprojekt.Form1.button1_Click(Object sender, EventArgs e) in C:\Dokumente und Einstellungen\Benutzer\Lokale Einstellungen\Anwendungsdaten\Temporary Projects\Versuchsprojekt\Form1.cs:Zeile 24.

bei System.Windows.Forms.Control.OnClick(EventArgs e)

bei System.Windows.Forms.Button.OnClick(EventArgs e)

bei System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)

bei System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)

bei System.Windows.Forms.Control.WndProc(Message& m)

bei System.Windows.Forms.ButtonBase.WndProc(Message& m)

bei System.Windows.Forms.Button.WndProc(Message& m)

bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)

bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)

bei System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

bei System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)

bei System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData)

bei System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)

bei System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)

bei System.Windows.Forms.Application.Run(Form mainForm)

bei Versuchsprojekt.Program.Main() in C:\Dokumente und Einstellungen\Benutzer\Lokale Einstellungen\Anwendungsdaten\Temporary Projects\Versuchsprojekt\Program.cs:Zeile 17.

bei System.AppDomain.nExecuteAssembly(Assembly assembly, String[] args)

bei System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)

bei Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()

bei System.Threading.ThreadHelper.ThreadStart_Context(Object state)

bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)

bei System.Threading.ThreadHelper.ThreadStart()

Danke schonmal im Vorraus!

Es handelt sich um eine xls-Datei, aber ich glaube die wurde unter Excel 2007 mal bearbeitet, kann das daran liegen?

Ich denk mal, Excel muss installiert sein, damit das funktioniert. Oder gibt es einen expliziten ODBC Treiber für Excel?

Und wenn die Datei unter 2007 gespeichert worden ist, wirst Du OleDB verwenden müssen.

Oder ich benutze ne ODBC Connection zu Excel2007.

Danke für die Hilfe :nett:

  • 1 Monat später...

Hier übrigens die Lösung:

             String strConn = @"Dsn=Excel Files;dbq="+oFD.FileName+";defaultdir=C:\\;driverid=1046;maxbuffersize=2048;pagetimeout=5";

             OdbcConnection objConn = new OdbcConnection(strConn);

             objConn.Open();

             OdbcDataAdapter adp = new OdbcDataAdapter("select * from [Sheet1$]", objConn);

             DataSet ds = new DataSet();

             adp.Fill(ds);

             dataGridView1.DataSource = ds.Tables[0];

             objConn.Close();

  • 9 Monate später...
  • 2 Jahre später...

hey,

ich hab ne frage zu dem code snippet. Und zwar wird das ja jetzt in eine datatgridview ausgegeben. Ich möchte die daten aber in einem sting speichern. Jedoch steht in dem String bei mir immer nur "Table" drin und nicht meine eigentlichen daten.

Was mache ich falsch?

string datasource = ds.Tables[0].ToString();

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.