-2

我需要在下面的这些语法中使用 ExecuteNonQuery 吗?他们是正确的吗?目标使用da.DeleteCommand;我获得了哪种语法?

MySqlCommand cmd = new MySqlCommand("DELETE FROM users_login WHERE UserID = @UserID;", coon);
cmd.Parameters.Add("@UserID", MySqlDbType.Int16).Value = oUsuario.UserID;

MySqlDataAdapter da = new MySqlDataAdapter();
da.DeleteCommand = cmd;

coon.Open();
ok = true;

/**OR use this**/

MySqlCommand cmd = new MySqlCommand("DELETE FROM users_login WHERE UserID = @UserID;", coon);
cmd.Parameters.Add("@UserID", MySqlDbType.Int16).Value = oUsuario.UserID;

coon.Open();
cmd.ExecuteNonQuery();
ok = true;
4

2 回答 2

2

是的,如果您正在执行 DELETE 语句,则您的 MySqlCommand 实例上的 ExecuteNonQuery() 就是您想要使用的。如果您正在执行 INSERT 或 UPDATE 语句或不返回结果集的存储过程,这也是您将使用的。

于 2013-08-23T13:08:58.010 回答
0

如果您使用的是非查询但删除不起作用......您可能需要使用事务:

coon.Open();
var trans = coon.BeginTransaction();

var query = "DELETE FROM users_login WHERE UserID = @UserID;";
MySqlCommand cmd = new MySqlCommand(query, coon, trans);

cmd.Parameters.Add("@UserID", MySqlDbType.Int16).Value = oUsuario.UserID;
cmd.ExecuteNonQuery();

trans.Commit();
coon.Close();
于 2019-04-09T13:27:21.337 回答