Insertステートメントにイメージを追加しようとしたときに問題が発生しました。メッセージCommand Textプロパティが適切に初期化されていません
が登場初期化されていません。私は解決策を探してみましたが、それを解決する手がかりはまだありません。ここでコマンドテキストプロパティが正しく
は、コードは次のとおりです。
Public Sub Insertplayer()
dbconn.ConnectionString = "server='" & My.Settings.ip & "';port=3306; user id='" & My.Settings.uid & "';password='" & My.Settings.pwd & "'; database= '" & My.Settings.db & "';"
dbcomm.Connection = dbconn
fname = imageurltxt.Text
Dim Content As Byte() = ImageToStream(fname)
Try
dbconn.Open()
Dim query As String
query = "INSERT INTO `player`(`ID`, `First_Name`, `Last_Name`, `Gender`, `Date_of_Birth`, `Civil_Status`, `Nationality`, `Address`, `Status', `Picture`) VALUES('" + TextBox7.Text + "','" + TextBox1.Text + "','" + TextBox2.Text + "','" + TextBox9.Text + "','" + TextBox3.Text + "','" + TextBox4.Text + "','" + TextBox5.Text + "','" + TextBox6.Text + "','" + TextBox8.Text + "', @Pic)"
dbcomm.Parameters.AddWithValue("@Pic", Content)
dbcomm.ExecuteNonQuery()
dbcomm = New MySqlCommand(query, dbconn)
dbread = dbcomm.ExecuteReader
dbread.Close()
Catch ex As Exception
MsgBox(ex.Message)
Finally
dbconn.Close()
End Try
End Sub
Private Function ImageToStream(ByVal fileName As String) As Byte()
Dim stream As New MemoryStream()
tryagain:
Try
Dim image As New Bitmap(fileName)
image.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg)
Catch ex As Exception
GoTo tryagain
End Try
Return stream.ToArray()
End Function
SQLを作成するために文字列を連結することは決して避けてください - *すべて* shuldはSQLパラメータを使用し、グローバルDBオブジェクトは使用しません。 「GoTo」はとても悪い考えです。 – Plutonix
dbcomm.ExecuteNonQuery()を呼び出す前にこの 'dbcomm.CommandType = query'のように初期化してください。 –
@AlexanderHiggins - ' dbcomm.CommandText = query'でなければなりません。 –