我在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,则会显示更多内容。
任何人都可以帮忙,
提前致谢。
答案 0 :(得分:0)
cmd.ExecuteNonQuery();通常用于执行不返回结果的SQL语句(如更新语句)。
使用类似的东西:
var prumos = cmd.ExecuteScalar();
答案 1 :(得分:0)
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的对象,或者来自数据库的值,并按照我上面提到的方式使用它。
答案 2 :(得分:0)
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
}