C# 数据库更新不需要';行不通

C# 数据库更新不需要';行不通,c#,mysql,C#,Mysql,如标题所示。我试着做每件事,我在互联网上到处搜索,但它不起作用。代码如下: public void SetIP(String IP, String Username) { try { String commandString = "UPDATE `Users` SET `IP` = '@ip' WHERE 'Username' = '@user';"; command = new MySqlCommand(c

如标题所示。我试着做每件事,我在互联网上到处搜索,但它不起作用。代码如下:

public void SetIP(String IP, String Username)
    {
        try
        {
            String commandString = "UPDATE `Users` SET `IP` = '@ip' WHERE 'Username' = '@user';";
            command = new MySqlCommand(commandString, connection);
            command.Parameters.AddWithValue("@ip", IP);
            command.Parameters.AddWithValue("@user", Username);

            command.BeginExecuteNonQuery();
        }
        catch (Exception e)
        {
            MessageBox.Show(e.Message);
        }

    }
我正确地将这两个值放入字符串IP和用户名中。我通过执行以下代码从文本框和IP地址获取用户名:

public String GetIP()
    {
        String direction = "";
        WebRequest request = WebRequest.Create("http://checkip.dyndns.org/");
        using (WebResponse response = request.GetResponse())
        using (StreamReader stream = new StreamReader(response.GetResponseStream()))
        {
            direction = stream.ReadToEnd();
        }

        //Search for the ip in the html
        int first = direction.IndexOf("Address: ") + 9;
        int last = direction.LastIndexOf("</body>");
        direction = direction.Substring(first, last - first);

        return direction;
    }
我只使用“LoginSystem_FindUser”,在那之后,我只使用FindUser和FindEmail进行注册

'Username' = '@user'
将始终返回false,因为它会进行字面上的比较

这是因为参数是用单引号包装的。删除单引号,它就会工作

String commandString = "UPDATE `Users` SET `IP` = @ip WHERE Username = @user;";
还有一件事,列名是标识符,所以它们也不应该用单引号括起来。

我明白了。我忘了

connectionReader.Close()


在if语句之后。顺便说一句,谢谢。

还是没什么。同样的事情。这一点都没有改变。我把它改成:“更新‘Users’SET‘IP’=@IP其中‘Username’=@user;”删除列名和表名周围的所有单引号,它就会工作。单引号用于字符串文本,而不是标识符。即使这样
String commandString=“UPDATE`Users`SET`IP`=@IP其中`Username`=@user”
但是在catch
子句中有
MessageBox
。因此,如果有任何错误,它应该给我一条消息。还是我错了?在这个问题上WPF没有什么特别的。。。移除标签。
String commandString = "UPDATE `Users` SET `IP` = @ip WHERE Username = @user;";