2

C#/ASP.NETExecuteNonQueryでレコードが挿入されたかどうかを知ることは可能ですか?

サブクエリを使用して、メールアドレスがテーブルに存在しないことを確認しています。

Insert が ASP.NET で作成されたかどうかを知る方法はありますか?

CommandPrizeEmails.Parameters.Add("@Email", SqlDbType.VarChar, 50);
CommandPrizeEmails.Parameters.Add("@DateToday", SqlDbType.DateTime);

CommandPrizeEmails.Parameters["@Email"].Value = txtEmail.Text;
CommandPrizeEmails.Parameters["@DateToday"].Value = DateTime.Now;

CommandPrizeEmails.ExecuteNonQuery();

//int newID = (int)CommandPrizeEmails.ExecuteScalar();

//CommandPrizeEmails.ExecuteNonQuery();
//if (newID >= 1) {
//    divSuccesfulEntry.Visible = true;
//} else {
//    divRepeatEntry.Visible = true;
//}
4

3 に答える 3

1

プロセスを確認するために、影響を受ける行を取得できます。

UPDATE、INSERT、および DELETE ステートメントの場合、戻り値はコマンドによって影響を受けた行の数です。

挿入または更新されるテーブルにトリガーが存在する場合、戻り値には、挿入または更新操作の両方によって影響を受ける行の数と、

トリガーまたはトリガーの影響を受ける行。他のすべてのタイプのステートメントの場合、戻り値は -1 です。ロールバックが発生した場合、戻り値も -1 です。

http://blogs.msdn.com/b/spike/archive/2009/01/27/sqlcommand-executenonquery-returns-1-when-doing-insert-update-delete.aspx

于 2013-08-28T13:18:26.543 に答える
1

ExecuteNonQuery 戻り値 ブール値 キャッチ値

元:

bool flg;

flg=cmd.ExecuteNonQuery(); 
if (flg)
{ msgbox("successfully inserted");}
else {msgbox("not inserted");}
于 2013-08-28T16:23:56.250 に答える
-1
bool flg;

flg=cmd.ExecuteNonQuery(); 
if (flg)
{ MessageBox.Show("successfully inserted");
}
else 
{
MessageBox.Show("not inserted");
}

これにより、次のようなエラーが発生します。

タイプ「int」を「bool」に暗黙的に変換できません

于 2014-01-09T04:51:03.350 に答える