-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 に答える