0

この場合、在庫カテゴリの値を返すクエリがあります。ユーザーが特定のボックス番号を入力すると、それがフォームで有効になる他のものである場合、フォームは無効になります。問題は、ExecuteScalar を使用し、その値を文字列 "AP" と比較する必要があることです。私はC#にかなり慣れていないので、これを行う方法がわかりません。これまでの私のコードは次のとおりです。

private void hide_apple_controls()
{
        SqlCommand cmd = new SqlCommand();
        Object invCat;
        cmd.CommandText = "SELECT itm.inv_cat FROM " +
                          "t_item_master itm " +
                          "LEFT OUTER JOIN  t_box box (NOLOCK) ON box.product_code LIKE itm.item_number " +
                          "where box.box_id = @box_id ";

        cmd.Parameters.Add("@box_id", SqlDbType.VarChar).Value = boxBox.Text;

        cmd.CommandType = CommandType.Text;
        cmd.Connection = this.sqlConnection1;
        this.sqlConnection1.Open();
        SqlDataAdapter adpt = new SqlDataAdapter(cmd);
        DataSet ds = new DataSet();
        adpt.Fill(ds);
        invCat = cmd.ExecuteScalar();          
        this.sqlConnection1.Close();

        string ap = "AP";

        if (invCat == ap ) 
        {
            disable_qc_form();
        }

        enable_qc_form();
}
4

1 に答える 1

4

if 条件では、else 句が必要です。

if (invCat == ap ) 
   disable_qc_form();
else
   enable_qc_form();

がなければ、else最後の行は何があっても実行されます。がtrue と評価されないelse場合にのみ実行されます。invCat == ap

于 2012-08-08T00:07:23.373 に答える