-1

我使用这种方法将登录列的值增加一:

MySqlConnection connect = new MySqlConnection(connectionStringMySql);
MySqlCommand cmd = new MySqlCommand();

cmd.Connection = connect;
cmd.Connection.Open();

string commandLine = null;
commandLine = "UPDATE Users SET logins = (@cur_value := logins) + 1 WHERE id = @id;";

cmd.CommandText = commandLine;


cmd.Parameters.AddWithValue("@id", userId);

cmd.ExecuteNonQuery();
cmd.Connection.Close();

我得到了这个例外:

命令执行期间遇到致命错误。

4

3 回答 3

1

试试这段代码

string commmandLine = "UPDATE Users SET logins = logins + 1 WHERE id = @id";
cmd.Set
于 2013-04-01T18:20:38.453 回答
0

首先尝试此代码

commandLine = "更新用户设置登录 =1 WHERE id = @id";

如果上面的代码没有抛出任何错误,那么试试下面的代码

commandLine = "UPDATE Users SET **logins =@YourValue** WHERE id = @id";

cmd.CommandText = commandLine;
cmd.Parameters.AddWithValue("@id", userId);

cmd.Parameters.AddWithValue("@YourValue", 1);//**Put your logins value**
于 2013-04-01T18:16:04.250 回答
-1

添加以下行:

 cmd.Parameters.AddWithValue("@cur_value", yourValue);

还要做出更清晰的sql语句:

UPDATE Users 
SET logins = @cur_value + 1 
WHERE id = @id;

将有问题的代码段用try/catch. 代表非托管资源(如 Stream 或 SqlConnection)的类正在实现IDisposable接口。它们通常需要用using语句括起来才能正确释放它们的资源,即使抛出异常(或使用 try/finally 和 finally 块调用方法CloseDispose)。然后你的代码会很好很清晰:)

于 2013-04-01T18:02:28.390 回答