我在嘗試在插入語句中添加圖像時出現問題。消息命令文本屬性未正確初始化
命令文本屬性尚未正確初始化
出現。我試圖尋找解決方案,但我仍然不知道如何解決它。
下面的代碼:
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參數,不使用全局數據庫對象。 'GoTo'是一個非常糟糕的主意。 – Plutonix
在調用dbcomm.ExecuteNonQuery() –
@AlexanderHiggins之前像這樣初始化它'dbcomm.CommandType = query'它應該是'dbcomm.CommandText = query'。 –