Ich versuche, eine Access-Datenbank aus einer XML-Datei mit VB.NET und OleDB zu aktualisieren. Ich verwende den folgenden Code, kann das Update jedoch nicht ausführen. Ich bekomme keine Fehler, aber es findet keine Aktualisierung statt - es scheint, CRSID als String trotz .DbType.Int32 zu behandeln. Die Debug-Ausgabe zeigt alle korrekten Werte und eine ähnliche Methode für eine Insert-SQL funktioniert einwandfrei. Wenn ich einen Wert in CRSID fest codiere, wird die Datenbank aktualisiert, aber die Daten befinden sich in den falschen Spalten. LastName enthält CRSID und FirstName enthält LastName. Hoffe jemand kann helfen.SQL-Aktualisierung in VB.NET mit OLEDB
For Each drCurrent In dt.Rows
Using cmd As New OleDb.OleDbCommand With
{
.Connection = cn,
.CommandText =
<SQL>
Update NewPMS SET LastName = @LastName, FirstName = @Firstname WHERE CRSID = @CRSID
</SQL>.Value
}
cmd.Parameters.AddRange(New OleDb.OleDbParameter() _
{
New OleDb.OleDbParameter With {.ParameterName = "@CRSID", .DbType = DbType.Int32},
New OleDb.OleDbParameter With {.ParameterName = "@LastName", .DbType = DbType.String},
New OleDb.OleDbParameter With {.ParameterName = "@FirstName", .DbType = DbType.String}
}
)
cmd.Parameters(0).Value = drCurrent("CRSID")
cmd.Parameters(1).Value = drCurrent("LastName")
cmd.Parameters(2).Value = drCurrent("FirstName")
cn.Open()
cmd.ExecuteNonQuery()
cn.Close()
cmd.Parameters.Clear()
End Using
Next
Dies funktionierte perfekt. Du verdienst einen goldenen Stern! – RGold
Ich bin froh, Ihnen helfen zu können. Als neuer Benutzer der Website empfehle ich zu lesen, wie funktioniert die Annahme einer Antwort (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work) – Steve