我有一个查询,在这种情况下会返回一个值和库存类别。如果用户输入某个框号,则表单应该禁用,如果它是表单将启用的任何其他内容。问题是我使用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 :(得分:4)
在if条件中,你需要else子句。
if (invCat == ap )
disable_qc_form();
else
enable_qc_form();
如果没有else
,无论如何都会执行最后一行。
使用else
时,仅当invCat == ap
未评估为真时才会执行。