2015-05-15 73 views
-1
Public Class Remove_Text_Based 
Public Function ParameterizedNonQueryCommand(ByRef NonQuery As String, ByVal Parameters As List(Of MySqlParameter), Optional ByVal Connection As MySql.Data.MySqlClient.MySqlConnection = Nothing) As Integer 
    Dim comm As New MySql.Data.MySqlClient.MySqlCommand(NonQuery, Connection) 
    Try 
     For Each param As MySql.Data.MySqlClient.MySqlParameter In Parameters 
      comm.Parameters.Add(param) 
     Next 
     If comm.Connection.State <> ConnectionState.Open Then comm.Connection.Open() 
     comm.Prepare() 
     Return comm.ExecuteNonQuery() 
    Catch ex As Exception 
     Return CType(False, Integer) 
    Finally 
     comm.Connection.Close() 
     comm.Dispose() 
    End Try 
End Function 

Private Sub btnRemove_Click(sender As Object, e As EventArgs) Handles btnRemove.Click 
    Dim query As String = "DELETE FROM textquestion WHERE questionID = @questionID" 
    Dim params As New List(Of MySqlParameter) 
    params.Add(New MySqlParameter("question", 1)) 
    Dim conn As MySqlConnection = New MySqlConnection("server=localhost;user=root;password=password;database=giordydatabase") 
    ParameterizedNonQueryCommand(query, params, conn) 

    'error messages for unfilled boxes 

    If QuestionIDBox.Text = "" Then 
     MessageBox.Show("Please enter the questionID please") 
    End If 
    Dim submit As Integer = MessageBox.Show("Are you sure you want to submit the user information", "Submit", MessageBoxButtons.YesNo) 
    If submit = DialogResult.No Then 
     MessageBox.Show("The user information will not be sumbitted") 
    ElseIf submit = DialogResult.Yes Then 
     MessageBox.Show("The user information has been submitted") 
    End If 
End Sub 

上面就是我创建删除领域掀起了数据库的代码中,我创建一个函数以及子上面我的地方查询删除代码。我的问题是,代码没有在VS2013中显示任何错误,但是当我运行代码时,我想要删除的字段未被删除。从MySQL数据库那么删除的数据不会被删除,VB.Net代码

+0

如果有例外情况,您将丢弃*告诉您的所有信息*出了什么问题。修复Catch块以找出错误。 – Plutonix

+0

做到这一点,显然我需要定义“@questionID”,我会着手解决这个问题。 – GiordySays

+0

因为我已经添加了'MsgBox(“Error:”&ex.ToString())',所以在第11行中有一个错误,它是'Return comm.ExecuteNonQuery()'。 VS2013希望我定义前面提到过的@ questionID。显然我错过了一个return语句。 – GiordySays

回答

0
Public Class Remove_Text_Based 

Public Function ParameterizedNonQueryCommand(ByRef NonQuery As String, ByVal Parameters As List(Of MySqlParameter), Optional ByVal Connection As MySql.Data.MySqlClient.MySqlConnection = Nothing) As Integer 
    Dim comm As New MySql.Data.MySqlClient.MySqlCommand(NonQuery, Connection) 
    Try 
     For Each param As MySql.Data.MySqlClient.MySqlParameter In Parameters 
      comm.Parameters.Add(param) 
     Next 
     If comm.Connection.State <> ConnectionState.Open Then comm.Connection.Open() 
     comm.Prepare() 
     Return comm.ExecuteNonQuery() 
    Catch ex As Exception 
     Return CType(False, Integer) 
     MsgBox("Error: " & ex.ToString()) 
    Finally 
     comm.Connection.Close() 
     comm.Dispose() 
    End Try 
End Function 

Private Sub btnRemove_Click(sender As Object, e As EventArgs) Handles btnRemove.Click 
    Dim query As String = "DELETE FROM textquestion WHERE questionID = " & QuestionIDBox.Text & "" 
    Dim params As New List(Of MySqlParameter) 
    params.Add(New MySqlParameter("questionID", 1)) 
    Dim conn As MySqlConnection = New MySqlConnection("server=localhost;user=root;password=password;database=giordydatabase") 
    ParameterizedNonQueryCommand(query, params, conn)