我是新來的VB編程和幾天試圖解決這個需要一些幫助後所遇到的問題:(!VS2010個MySqlException了未處理
我試圖從VB的形式來傳遞一些信息我的MySQL數據庫,我已經命名所有的文本框與數據庫中的字段相同,並檢查了所有我的數據庫字段和文本框名稱都是正確的
當我嘗試輸入信息到表單中時,我有時會得到一個錯誤在代碼的.executeNonQuery部分。
爲了測試,我輸出了SQLStatement字符串到文本框(正確地從文本框中拉出所有字段),然後手動將完成的SQL查詢輸入到數據庫中,並且它工作正常。但是,當我一次嘗試這樣做時,如果文本太多(如果我在每個字段中輸入「a」,它似乎會失敗)。它們是否限制了可以從VB傳遞的SQL查詢的大小?所有的MySql數據庫字段都設置爲沒有大小限制的文本。
在此先感謝!
Public Sub SaveQuote(ByRef SQLStatement As String)
Dim cmd As MySqlCommand = New MySqlCommand
With cmd
.CommandText = SQLStatement
.CommandType = CommandType.Text
.Connection = SQLConnection
.ExecuteNonQuery()
End With
SQLConnection.Close()
MsgBox("successfully Added!")
SQLConnection.Dispose()
End Sub
Private Sub CmdSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CmdSave.Click
Dim SQLstatement As String = "INSERT INTO laptopstock(forename,surname,emailaddress,contactnumber,quotedate,manufacturer,model,os,battery,drive,defects) VALUES('" & forename.Text & "','" & surname.Text & "','" & emailaddress.Text & "','" & contactnumber.Text & "', CURDATE(),'" & manufacturer.Text & "','" & modelnumber.Text & "','" & os.Text & "','" & batterycondition.Text & "','" & drivetype.Text & "','" & defects.Text & "')"
SaveQuote(SQLstatement)
End Sub
「測試SQL查詢
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim testSQLstatement As String = "INSERT INTO laptopstock(forename,surname,emailaddress,contactnumber,quotedate,manufacturer,model,os,battery,drive,defects) VALUES('" & forename.Text & "','" & surname.Text & "','" & emailaddress.Text & "','" & contactnumber.Text & "', CURDATE(),'" & manufacturer.Text & "','" & modelnumber.Text & "','" & os.Text & "','" & batterycondition.Text & "','" & drivetype.Text & "','" & defects.Text & "')"
testbox.Text = testSQLstatement
End Sub
這裏是testSQLstatement = testbox.text
INSERT INTO laptopstock(forename,surname,emailaddress,contactnumber,quotedate,manufacturer,model,os,battery,drive,defects) VALUES('Joe','Bloggs','[email protected]','07777777777', CURDATE(),'Sony','Vaio','Windows 7 Pro','Poor','DVD-Rom','Faulty Screen')
輸出從我可以看到它的格式是否正確,當我直接進入該在MySql服務器上創建一個查詢
不要使用像那樣的字符串連接來構建查詢。它使您容易受到SQL注入攻擊。 – 2012-03-11 19:52:36