C# 是否使用DeleteCommand执行ExecuteOnQuery?

C# 是否使用DeleteCommand执行ExecuteOnQuery?,c#,mysql,executenonquery,C#,Mysql,Executenonquery,我需要在下面的语法中使用ExecuteOnQuery? 他们是对的?目的使用da.delete命令;哪种语法可以提高性能 MySqlCommand cmd = new MySqlCommand("DELETE FROM users_login WHERE UserID = @UserID;", coon); cmd.Parameters.Add("@UserID", MySqlDbType.Int16).Value = oUsuario.UserID; MySqlDataAdapter da

我需要在下面的语法中使用ExecuteOnQuery? 他们是对的?目的使用da.delete命令;哪种语法可以提高性能

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;

是的,如果您正在执行DELETE语句,那么您希望在MySqlCommand实例上使用ExecuteNonQuery()。如果您正在执行INSERT或UPDATE语句或不返回结果集的存储过程,您也会使用它。

如果您使用的是非查询,但删除不起作用。。。您可能需要使用交易:

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();

您正在询问这些命令是否正确。你试过了吗?它们在工作吗?ExecuteOnQuery也应该为delete执行此操作。不确定delete命令的作用。如果要立即执行查询,请使用
ExecuteNonQuery
,如果要在将更改发送到数据库之前修改
DataTable/DataSet
中的所有内存,请使用
DataAdapter
。我必须表达我自己的迫切需要。。。如果我在网站(Web应用程序)中使用,我会获得哪些性能?@BrunoCasali:你的问题无法回答。DataAdapter可以单独使用多个命令。因此,如果需要DataAdapter,请使用它,如果不需要,请使用命令。正在执行
da.DeleteCommand=cmd?我获得性能或具有相同的结果集?数据适配器用于处理数据集。如果使用DataAdapter填充、操作数据集的更改并将其发布回数据库,那么在DataAdapter实例上使用DeleteCommand属性是有意义的。如果您只想对数据库执行任意DELETE语句,那么只需在命令实例上使用ExecuteOnQuery。谢谢,您解决了部分问题,但我现在需要:关于性能?关于性能呢?您对性能有什么特别的关注?很好,我发现,对于同一个问题有两个语法,我想知道哪些语法可以提高性能?