У меня есть запрос, который вернет значение в этом случае и категорию инвентаря. Если пользователь вводит определенный номер поля, форма должна отключаться, если это что-то еще, что форма разрешает. Проблема в том, что я использую 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();
}
0
briskovich 8 Авг 2012 в 04:04

1 ответ

Лучший ответ

В условии if вам понадобится предложение else.

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

Без else ваша последняя строка будет выполняться несмотря ни на что. С else он будет выполняться только в том случае, если invCat == ap не имеет значения true.

4
Omar 8 Авг 2012 в 04:19