Unterstützung bei VB.NET

Nun ja, ein bisschen wurschteln.

Frage: Wie kann ich in deinem Code das MyCommand noch benutzen , ohne die INstanz direkt zu DIMMEN ohne INSERT_String und Connection?

Muss leider meinen Arbeitsplatz verlassen. Ich schaue hier morgen nochmal rein!
 
Zuletzt bearbeitet:
Garnicht. Du brauchst eine aktive Datenbankconnection um einen Command ausführen zu können.
Du kannst ja auch nicht umschalten wenn der Fernseher aus ist :)
Was du aber sicherlich vergessen hast, ist einen Verweis auf die Microsoft Access Object Libary zu setzen. Findest du unter Verweise -> Verweis hinzufügen -> COM

Folgenden Code habe ich gerade getestet und der geht auf jeden Fall:
Code:
Dim conStr As String = "Driver={Microsoft Access Driver (*.mdb)};Dbq=D:\test.mdb;"
Dim query As String = "INSERT INTO test VALUES('test')"
Dim conn As New System.Data.Odbc.OdbcConnection(conStr)
Dim com As New System.Data.Odbc.OdbcCommand(query, conn)

Try
    conn.Open()
    com.ExecuteNonQuery()
Catch ex As Exception
    MsgBox(ex.ToString)
Finally
    conn.Close()
End Try
 
So, ich versuche mal mein Problem jetzt zu erklären!

1. Die Datenbankverbindung wird schon aufgebaut, das geht also


'Mark1 Hier macht du den Verbindungstring'
Dim conStr As String = "Driver={Microsoft Access Driver (*.mdb)};Dbq=D:\test.mdb;"

'Mark2 Hier macht du den Command
Dim query As String = "INSERT INTO test VALUES('test')"

'Mark3 Hier setzt du die Connection'
Dim conn As New System.Data.Odbc.OdbcConnection(conStr)

'Mark4 Hier setzt du DIESEN EINEN Befehl'
Dim com As New System.Data.Odbc.OdbcCommand(query, conn)

'Mark5 Hier führst du das alles aus'
Try
conn.Open()
com.ExecuteNonQuery()
Catch ex As Exception
MsgBox(ex.ToString)
Finally
conn.Close()
End Try



Bei mir sollte das dann so aussehen (ich arbeite jetzt mit meinem Marks)

Mark1
Mark3

Dann conn.open()

Dann etwas an Code, der den Command generiert

dann
Mark2
Mark4
com.ExecuteNonQuery()


BLA BLA


conn.close()




Einigermassen hintergestiegen?

Der Query, den du oben erzeugst, soll dynamisch und mehrere hundert male in meinem Code erzeugt werden, daher kann ich den da oben nicht setzten!
 
Zuletzt bearbeitet:
Ja dann erstell sie doch dynamisch. Ich hab doch keine Ahnung wie dein(e) Queries hinterher aufgebaut sein sollen. Nimm dir halt eine Schleife oder wie du auch immer diese hunderte von Queries erzeugen willst und führe für jedes Query com.ExecuteNonQuery() aus.
Macht doch keinen Unterschied wo ich das Query definiere. Es ging in meinem Beispiel auch nur um das Prinzip und nicht um eine 1:1 Lösung für dich.
Ein bisschen Eigenleistung ist schon nötig.
 
Ich versuche ja auch das gesamte zu verstehen und nicht nur eine Lösung für mein Problem. Ich glaube du hast mein Problem noch nicht so genau verstanden. Nochmal kurz:

In deiner Struktur deklariert du den Comand mit einem Querystring und der Connection.

Das soll bei mir nicht der Fall sein, ich deklariere nun nur den Comand, ohne Query und String. Danach setzte ich mit .Connection die Verbindung und in der Schleife dann mit .Comand den neuen Query.

Aber du hast mir schon sehr gut weitergeholfe, weil ich das Problem schon einigermasen gelöst habe. Ging halt nur darum, das ich den Query beim DIM des COmands noch nicht erzeugt hatte.

Aber soweit so gut eigentlich.

Ist schonmal eine gute Hilfe gewesen. Jetzt meckert er während des Einfügens anhand eines "Systemfehlers". Mal sehen, wie mein Rechner mir das wieder erklären will! ;)
 
Zurück