-2

我是 vb.net 中的 Mysql 新手。

我想要的是当我单击保存按钮时,我希望更新 mysql 数据库并且更新列 Wcoins,它将获得 Label2.Text 中的值

我的代码:

        Dim conn As MySqlConnection
    conn = New MySqlConnection("server=REMOVED;Port=REMOVED; user id=REMOVED; password=REMOVED; database=REMOVED")
    Dim username As Boolean = True
    conn.Open()
    Dim sqlquery As String = "UPDATE * FROM NewTable WHERE Wcoins=label2.text"
    Dim data As MySqlDataReader
    Dim adapter As New MySqlDataAdapter
    Dim command As New MySqlCommand
    command.CommandText = sqlquery
    command.Connection = conn
    adapter.SelectCommand = command
    data = command.ExecuteReader

    data.Close()
    conn.Close()

我犯了一些错误,但我试图更新 Wcoins,所以它会删除旧值并获得 label2.text 中显示的值

任何帮助都会非常感激

我是荷兰人所以如果你看到拼写错误请纠正他们

4

2 回答 2

0

是的,我尝试了一些代码,我找到了一个有效的代码。

代码:

        Dim conn As MySqlConnection
    conn = New MySqlConnection("server=REMOVED;Port=REMOVED; user id=REMOVED; password=REMOVED; database=REMOVED")
    Dim username As Boolean = True
    conn.Open()
    Dim sqlquery As String = "UPDATE NewTable SET Wcoins='" & Label2.Text & "' WHERE Name='" & Label1.Text & "';"
    Dim data As MySqlDataReader
    Dim adapter As New MySqlDataAdapter
    Dim command As New MySqlCommand
    command.CommandText = sqlquery
    command.Connection = conn
    adapter.SelectCommand = command
    data = command.ExecuteReader

    data.Close()
    conn.Close()

谢谢大家帮助我

于 2013-09-14T21:08:02.453 回答
0

Update SQL 语句的正确语法是

 UPDATE <table> SET <field>=<value> WHERE <PrimaryKey> = <valueForPK>

所以你正确的命令文本应该是这样的

 UPDATE NewTable SET Wcoins = <value> WHERE ????? = ??????

我不知道你的表的主键的名称是什么,这对于给你一个正确的答案至关重要,因为如果没有 WHERE 部分,UPDATE 命令将更改你的表的每条记录,我想这不是你的意图,

最后,您的代码是错误的,因为将使用 MySqlCommand.ExecuteNonQuery() 而不是使用 ExecuteReader 来执行 UPDATE 命令(如 INSERT 或 DELETE)。
您的代码中还有其他要点需要下划线,例如字符串连接以形成命令文本(Sql 注入和解析错误),但此时最好先修复 UPDATE 问题。

编辑现在您已经提供了有关您的专栏名称的更多信息,我可以更新我的答案以显示我将如何编写该代码

Dim sqlquery = "UPDATE NewTable SET Wcoins=@newValue WHERE Name=@nameValue"
Using conn = New MySqlConnection(.........)
Using command = New MySqlCommand(sqlquery, conn)
    conn.Open()
    command.Parameters.AddWithValue("@newValue", label2.Text)
    command.Parameters.AddWithValue("@nameValue", label1.Text)
    command.ExecuteNonQuery()
End Using
End Using
  • 使用 Statement来确保连接始终关闭,即使您有异常
  • 在不使用字符串连接的情况下为命令添加值的参数(Sql Injection
  • 为 UPDATE 查询执行 ExecuteNonQuery,而不是使用 DataAdapter 和所有必要的代码
于 2013-09-14T20:07:55.923 回答