C# MySQL 语法使用更新命令时出错
本文关键字:命令 出错 更新 MySQL 语法 | 更新日期: 2023-09-27 18:34:44
大家好。我在与数据库交互时遇到了另一个问题。这次使用更新命令。
我有一个包含以下列的表格:
Identity Number (int, auto-increment)
Username (varchar)
Password (varchar)
Authority Level (int)
Last Login (timestamp)
我正在尝试使用标识号更新用户名、密码和权限级别。
这是我尝试执行的代码:
public static async Task<bool> UpdateAdministrator(
int identityNumber,
string username,
string password,
int authorityLevel)
{
try
{
await OpenConnection();
MySqlCommand mySqlCommand = mySqlConnection.CreateCommand();
mySqlCommand.CommandText = "UPDATE Administrators SET Username = @Username, Password = @Password, 'Authority Level' = @Authority_Level WHERE 'Identity Number' = @Identity_Number;";
mySqlCommand.Parameters.Add("@Identity_Number", MySqlDbType.Int32).Value = identityNumber;
mySqlCommand.Parameters.Add("@Username", MySqlDbType.VarChar).Value = username;
mySqlCommand.Parameters.Add("@Password", MySqlDbType.VarChar).Value = password;
mySqlCommand.Parameters.Add("@Authority_Level", MySqlDbType.Int32).Value = authorityLevel;
await mySqlCommand.ExecuteNonQueryAsync();
mySqlCommand.Dispose();
await CloseConnection();
return true;
}
catch
{
return false;
}
}
这是我得到的例外:
您的 SQL 语法有误;请查看手册 对应于您的MySQL服务器版本,以便使用正确的语法 接近"权限级别"= 0,其中第 1 行的"身份号码"= 1
有人可以帮我找出问题所在吗?提前致谢
'
只是用'
在mySQL中,'字符用于标识表/列名
标识符引号字符是反引号 ("'"(:
所以你的代码应该看起来像
mySqlCommand.CommandText = "UPDATE Administrators SET Username = @Username, Password = @Password, `Authority Level` = @Authority_Level WHERE `Identity Number` = @Identity_Number;";
这都是关于语法的 ' 您可以使用表的实际字段,例如 [...]
SET [Username] = @Username, [Password] = @Password, [Authority Level] = @Authority_Level WHERE [Identity Number] = @Identity_Number;";