检查 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...出现更多。
谁能帮忙,
提前谢谢。
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 或字符串,并以我上面提到的方式使用它。