Veröffentlicht 30. Januar 200817 j 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!
30. Januar 200817 j Es handelt sich um eine xls-Datei, aber ich glaube die wurde unter Excel 2007 mal bearbeitet, kann das daran liegen?
30. Januar 200817 j 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.
4. März 200817 j 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();
8. Dezember 200816 j Hier ein weiteres funktionierendes Beispiel: Connect to an Excel file as a data source via OBDC
18. November 201113 j 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.