通过VB.NET更新MYSQL记录

时间:2015-04-03 19:00:19

标签: mysql vb.net

我要做的是在我的vb.net应用程序中执行基本插入,刷新和更新mysql查询。刷新,插入工作完美唯一一个我无法得到的是更新谁能告诉我我做错了什么?这是程序布局的图片:

http://i.imgur.com/mHxKGrb.png

这是我的源代码:

Private Sub KnightButton3_Click(sender As Object, e As EventArgs) Handles KnightButton3.Click
    cn = New MySqlConnection
    cn.ConnectionString = "my info"

    Try
        cn.Open()
        Dim query As String
        Dim command As MySqlCommand
        query = "UPDATE Refers.exploitsociety SET Refferals='" + refupdate.Text + "' WHERE Refferals='" + DataGridView1.CurrentCell.Selected + "';"
        command = New MySqlCommand(query, cn)
        cmd.ExecuteNonQuery()

    Catch ex As MySqlException
        MessageBox.Show(ex.Message)
    Finally
        cn.Dispose()
    End Try
    cn.Close()
End Sub

1 个答案:

答案 0 :(得分:0)

我认为您的问题在于使用CurrentCell的属性Selected。这是一个布尔值,它不是该单元格的内容。 我会使用这种代码与参数化查询和围绕一次性对象的using语句

Try
     query = "UPDATE Refers.exploitsociety " & _ 
             "SET Refferals=@refs " & _ 
             "WHERE Refferals=@oldrefs"

    Using cn = New MySqlConnection(".... connection string ....")
    Using command = New MySqlCommand(query, cn)
        cn.Open()
        command.Parameters.Add("@refs", MySqlDbType.Int32).Value = _
                               Convert.ToInt32(refupdate.Text)
        command.Parameters.Add("@oldrefs", MySqlDbType.Int32).Value = _
                Convert.ToInt32(DataGridView1.CurrentCell.Value.ToString())
        command.ExecuteNonQuery()
    End Using
    End Using
Catch ex As MySqlException
    MessageBox.Show(ex.Message)
End Try

请注意,使用using语句,您不需要关闭/处置连接,因为这在代码离开using块时自动完成(同样在例外的情况下)