次のコードには、同じパラメーターを使用するupdate
1 つのinsert
ステートメントが含まれています。更新機能は機能しますが、Insert into ステートメントは機能しません... (更新では、すべてのパラメーターが DB に正常に設定されます)
残りの接続文字列は投稿しません。これは既にセットアップされ、機能しているためです。
次のエラーが表示されます:条件式のデータ型が一致しません。
Dim UpdateCon As MasterConnection = New MasterConnection()
Dim myCommand As OleDb.OleDbCommand = UpdateCon.GetConnection().CreateCommand
myCommand.Parameters.Add(New OleDb.OleDbParameter("@Navn", BoxKundeNavn.Text)) 'text field'
myCommand.Parameters.Add(New OleDb.OleDbParameter("@Hendelsesdato", DtpHendelsesdato.Value.ToString)) 'datetimepicker'
myCommand.Parameters.Add(New OleDb.OleDbParameter("@Event", BoxTrojans.Text)) 'text field'
myCommand.Parameters.Add(New OleDb.OleDbParameter("@Annet", BoxLogg.Text)) 'text field'
myCommand.Parameters.Add(New OleDb.OleDbParameter("@EndretAv", Analyst.ToString)) 'string variable'
myCommand.Parameters.Add(New OleDb.OleDbParameter("@EndretDato", Date.Now().ToString)) 'datetime picker'
myCommand.Parameters.Add(New OleDb.OleDbParameter("@Kontaktet", contacted)) 'boolean'
myCommand.Parameters.Add(New OleDb.OleDbParameter("@BrukerID", BoxKundeID.Text)) 'text field'
If userExist = True Then
Dim SqlText As String = "Update master Set Navn= @Navn, Hendelsesdato= @Hendelsesdato, Event= @Event," & _
"Annet= @Annet, EndretAv= @EndretAv, EndretDato=@EndretDato, Kontaktet=@Kontaktet WHERE BrukerID= @BrukerID"
myCommand.CommandText() = SqlText
Else
intCheck = MsgBox("Du er nå i ferd med å legge til en ny unik kundeID i database, er dette riktig?", vbYesNo, "Ny kundeID")
If intCheck = True Then
Dim SqlText As String = "INSERT INTO master (Hendelsesdato, BrukerID, Navn, Event, Annet, Kontaktet, EndretDato, EndretAv) " & _
"VALUES (@Hendelsesdato, @BrukerID, @Navn, @Event, @Annet, @Kontaktet, @EndretDato, @EndretAv)"
myCommand.CommandText() = SqlText
Else
Exit Sub
End If
End If
Dim test As Integer
Try
UpdateCon.GetConnection.Open()
test = myCommand.ExecuteNonQuery()
UpdateCon.GetConnection.Close()
Catch ex As OleDb.OleDbException
MsgBox(ex.Message.ToString)
End Try