繁体   English   中英

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

[英]check value from SQL to enable textbox and label

我在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 ......则会出现更多。

任何人都可以帮忙,

提前致谢。

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

使用这样的东西代替:

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或string的对象,或者来自数据库的值,并按照我上面提到的方式使用它。

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
  }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM