1

ExecuteScalar列の1つが「NO」に設定されているかどうかをバックエンドテーブルで確認して、関数を使用しようとしています。列の 1 つが NO に設定されている場合は、関数を呼び出します。SendEmailそれ以外の場合は、関数を呼び出しDelete_Recordます。私の問題は、常に関数を呼び出していてDelete_Record、決して関数を呼び出さないことSendEmailです。のデータ型Post_IDは varchar で、これが何か関係があるかどうかはわかりません。私は何が起こっているのか理解できないようです。誰か助けてくれませんか?これが私のコードです:

SqlCommand cmd = new SqlCommand("SELECT count(*) from MyTable WHERE Post_ID =@Post_ID And (Column1='No' OR Column2='No' OR Column3='No')", con);
    cmd.Parameters.Add("@Post_ID", SqlDbType.VarChar).Value = Post_ID;
    cmd.Connection = con;
    con.Open();
    Int32 result = (int)cmd.ExecuteScalar();

    if (result == 1)
    {
        SendEmail();
    }
      else
     {
       Delete_Record();
     }
4

3 に答える 3

2

複数になる可能性があるため、条件を次のように変更する必要があります。

    if (result >= 1)
    {
        SendEmail();
    }
      else
     {
       Delete_Record();
     }
于 2013-07-25T15:02:32.230 に答える