Zeilen aus Excel in Tabelle SQL 2005 DB schreiben?

17/09/2007 - 21:00 von sven | Report spam
Hallo,

wie kann ich am einfachsten Zeile für Zeile aus einer Excel Datei auslesen
und diese dann in eine SQL 2005 Tabelle schreiben?

Das insert in die SQL Tabelle bekomme ich wahrscheinlich hin,
ungefàhr so stell ich mir das vor:

Dim cnSQL = New SqlClient.SqlConnection("Server=MAIL;Initial
Catalog=Sven;Integrated Security=True")
cnSQL.Open()

Dim SQLcmd As New SqlClient.SqlCommand
SQLcmd.Connection = cnSQL
SQLcmd.CommandText = "Insert into NavContact (ContactID, Name, Suchbegriff)
values ('001', 'sven', 'sven petersen')"

SQLcmd.ExecuteNonQuery()



Aber beim Auslesen der Excel Tabelle bin ich wohl etwas auf dem Holzweg.

Mein bisheriger Ansatz:
Dim cnXLS As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:\Kontakte.xls;" & _
"Extended Properties=Excel 8.0"

Dim objXLS As New System.Data.OleDb.OleDbConnection(cnXLS)
Dim XLScmd As New OleDb.OleDbCommand

objXLS.Open()
XLScmd.Connection = objXLS
XLScmd.CommandText = "SELECT * FROM Kontakte$"
XLScmd.ExecuteNonQuery()



Wie komme ich zu den Daten in den Zeilen bzw. Zellen einer Zeile und wie
kann ich diese "komfortabel" in die SQL Tabelle einfügen.

Danke
 

Lesen sie die antworten

#1 Oliver Tell
18/09/2007 - 13:22 | Warnen spam
"sven" wrote:

Hallo,

wie kann ich am einfachsten Zeile für Zeile aus einer Excel Datei auslesen
und diese dann in eine SQL 2005 Tabelle schreiben?

Das insert in die SQL Tabelle bekomme ich wahrscheinlich hin,
ungefàhr so stell ich mir das vor:

Dim cnSQL = New SqlClient.SqlConnection("Server=MAIL;Initial
Catalog=Sven;Integrated Security=True")
cnSQL.Open()

Dim SQLcmd As New SqlClient.SqlCommand
SQLcmd.Connection = cnSQL
SQLcmd.CommandText = "Insert into NavContact (ContactID, Name, Suchbegriff)
values ('001', 'sven', 'sven petersen')"

SQLcmd.ExecuteNonQuery()



Aber beim Auslesen der Excel Tabelle bin ich wohl etwas auf dem Holzweg.

Mein bisheriger Ansatz:
Dim cnXLS As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:\Kontakte.xls;" & _
"Extended Properties=Excel 8.0"

Dim objXLS As New System.Data.OleDb.OleDbConnection(cnXLS)
Dim XLScmd As New OleDb.OleDbCommand

objXLS.Open()
XLScmd.Connection = objXLS
XLScmd.CommandText = "SELECT * FROM Kontakte$"
XLScmd.ExecuteNonQuery()



Wie komme ich zu den Daten in den Zeilen bzw. Zellen einer Zeile und wie
kann ich diese "komfortabel" in die SQL Tabelle einfügen.

Danke





Ich kenne mich leider nicht mit SQL und der OLE Anbindung von Excel aus.
Falls aber Excel auf dem Rechner installiert ist, auf dem dein Programm
laufen soll, kannst du folgendes Beispiel an deine Bedürfnisse anpassen (Du
benötigst ein Formular und einen Button, Form1 bzw. Button1):

Imports Excel = Microsoft.Office.Interop.Excel
'Damit das Programm funktioniert, muß du in den Projekteigenschaften einen
Verweis auf "Microsoft Excel xxx Object Library" setzen.
Public Class Form1
Private Const FileName As String = "c:\excel_test.xls"
Private myXL As Excel.Application = New Excel.Application
Private myWS As Excel.Worksheet = New Excel.Worksheet
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
'Falls die Excel Anwendung nur in der Taskleiste sichtbar sein soll, bitte
die folgende Zeile löschen.
myXL.Visible = True
myXL.Workbooks.Open(FileName)
myWS = CType(myXL.ActiveSheet, Excel.Worksheet)

'Die folgende Anweisung gibt dir den Wert von Zelle A1 als Objekt zurück
'myWS.Range(myWS.Cells.Item(1, 1)).Value

myXL.Quit()
myWS = Nothing
myXL = Nothing
End Sub
End Class

Ähnliche fragen