Ich bekomme die "System.FormatException: Die Eingabe hat das falsche Format." Fehler beim zweiten Versuch, während der erste einwandfrei funktioniert.Parameter.AddWithValue fehlgeschlagen
Weiß jemand, warum das so ist?
Versuch 1:
Using nCmdIns1 As SQLite.SQLiteCommand = cnUser.CreateCommand
With nCmdIns1
.CommandText = "INSERT INTO images (oemimageguid,imagetitle,imagecategory,imagesize,imageblob256) VALUES (@1,@2,@3,@4,@5)"
.Parameters.Add("@1", DbType.String).Value = uOEMImageGUID
.Parameters.Add("@2", DbType.String).Value = uTitle
.Parameters.Add("@3", DbType.Int32).Value = iCat
.Parameters.Add("@4", DbType.Int32).Value = uImageSize
.Parameters.Add("@5", DbType.Binary).Value = uBytes
.ExecuteNonQuery()
End With
End Using
Versuch 2:
Using nCmdIns2 As SQLite.SQLiteCommand = cnUser.CreateCommand
With nCmdIns2
.CommandText = "INSERT INTO images (oemimageguid,imagetitle,imagecategory,imagesize,imageblob256) VALUES (@1,@2,@3,@4,@5)"
.Parameters.AddWithValue("@1", DbType.String).Value = uOEMImageGUID
.Parameters.AddWithValue("@2", DbType.String).Value = uTitle
.Parameters.AddWithValue("@3", DbType.Int32).Value = iCat
.Parameters.AddWithValue("@4", DbType.Int32).Value = uImageSize
.Parameters.AddWithValue("@5", DbType.Binary).Value = uBytes
.ExecuteNonQuery()
End With
End Using
Ich habe versucht, das Problem durch Entfernen Parameter zu isolieren und Werte eins nach dem anderen, aber am Ende habe ich die gleiche Fehler selbst mit dieser spärlichen Linie:
Using nCmdIns3 As SQLite.SQLiteCommand = cnUser.CreateCommand
With nCmdIns3
.CommandText = "INSERT INTO images (oemimageguid) VALUES (@1)"
.Parameters.AddWithValue("@1", DbType.String).Value = uOEMImageGUID
.ExecuteNonQuery()
End With
End Using
Hier ist ein Screenshot von der Ausnahme für Versuch 3:
Der zweite Parameter ist der Wert AddWithValue selbst, nicht der Typ https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlparametercollection.addwithvalue (v = vs.110) .aspx versuche in jedem Fall immer die erste Methode zu verwenden, da du mehr Kontrolle über den Typ des Parameters hast – Steve
Wow, danke für die Klarstellung. Aber wann kann ich nach "AddWithValue" einen ") .Value" hinzufügen? – tmighty
Sie können, weil die Add-Methode den Parameter zurückgibt und Wert eine Eigenschaft des Parameters ist. – Steve