检查 SQL 中的值以启用文本框和标签

本文关键字:文本 标签 启用 SQL 检查 | 更新日期: 2023-09-27 18:17:23

我有一个 C# 中的 WinForm 应用程序,我需要根据在上一个窗体上选择的项目隐藏一些文本框和标签。我在设计器中禁用了文本框和标签,并根据 SQL 表中的值使它们再次可见。我拥有的代码是这个,但我无法弄清楚如何检查值。

private void build_Load(object sender, EventArgs e) 
{
    con.Open();
    SqlCommand cmd = con.CreateCommand();
    cmd.CommandType = CommandType.Text;
    cmd.CommandText = "select prumos from dbo.modelos";
    SqlDataReader dr = cmd.ExecuteReader();
    if (dr.HasRows)
    {
        while (dr.Read())
        {
            var check = dr["prumos"].ToString();
            textBox13.Visible = check == "2";
            textBox18.Visible = check == "2";
            textBox17.Visible = check == "2";
            label16.Visible = check == "2";
            return;
        }
    }
    else
    {
        //var check = dr["prumos"].ToString();
        //textBox13.Visible = check == "3";
        //textBox18.Visible = check == "3";
        //textBox17.Visible = check == "3";
        //textBox14.Visible = check == "3";
        //textBox16.Visible = check == "3";
        //textBox15.Visible = check == "3";
        //label16.Visible = check == "3";
        //label20.Visible = check == "3";
        //return;
    }
    con.Close();

我还想应用一个else if,以便如果 id 为 2 ...如果 ID 为 3...出现更多。

谁能帮忙,

提前谢谢。

检查 SQL 中的值以启用文本框和标签

SqlReader 可以检查您的命令值。 检查这个:

con.Open();
SqlCommand cmd = con.CreateCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "select prumos from dbo.modelos";
SqlDataReader dr = cmd.ExecuteReader();  

  if (dr.HasRows)
   {
         while(dr.Read())
        {
           var check = dr["prumos"].ToString()
            //if "2" then true, else false 
            textBox13.Visible = check == "2";
        }
   }
 else
  {
     //no row return
  }

cmd.ExecuteNonQuery((; 通常用于执行不返回结果的 SQL 语句(如 Update Statement(。

请改用这样的东西:

var prumos = cmd.ExecuteScalar();
 con.Open();
    SqlCommand cmd = con.CreateCommand();
    cmd.CommandType = CommandType.Text;
    cmd.CommandText = "select prumos from dbo.modelos";
    int value = (int)cmd.ExecuteScalar();
    if (value == 2) ; //database value prumos =2
    {
        textBox13.Visible = true;
        textBox18.Visible = true;
        textBox17.Visible = true;
        label16.Visible = true;
        return;
    }
    else if (value == 3) ; //database value prumos = 3 
    {
        textBox13.Visible = true;
        textBox18.Visible = true;
        textBox17.Visible = true;
        textBox14.Visible = true;
        textBox16.Visible = true;
        textBox15.Visible = true;
        label16.Visible = true;
        label20.Visible = true;
        return;
    }

您可以通过编辑代码来执行类似于我上面显示的操作。通过使用 ExecuteScalar(( 将返回您的对象,您可以根据您的要求或来自数据库的值将其转换为 int 或字符串,并以我上面提到的方式使用它。