I am trying to update an Access database from an XML file using VB.NET and OleDB. I am using the following code but cannot get the update to work. I am not getting any errors but no update is happening - it seems to be treating CRSID as a string despite .DbType.Int32. Debug output shows all the correct values and a similar method for an Insert SQL works fine. If I hard code a value in CRSID the db is updated but the data is in the wrong columns LastName contains CRSID and FirstName contains LastName. Hope someone can help.
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