根据数据库查询检查复选框

时间:2016-09-15 21:16:07

标签: c# winforms

我需要在数据库中根据值0或1填充asp C#中的复选框。

 SqlCommand Comm1 = new SqlCommand("Select Active from dbo.SQLInfrastructure WHERE [Instance] LIKE  '" + label1.Text + "%'", connn);
 connn.Open();
 SqlDataReader DR1 = Comm1.ExecuteReader();


 if (Comm1==1)
 {
     this.activeCheckBox.Checked = false;
 }
 else
 {
     this.activeCheckBox.Checked = true;
 }

 connn.Close();

我相信我很接近,这是在page_load事件上。这段代码不起作用,但传达了我想要完成的任务。

4 个答案:

答案 0 :(得分:0)

看看这个SqlDataReader example

基本上,在您可以使用阅读器的内容之前,您必须移动到第一条记录

另外(继STLDeveloper的评论之后)......考虑使用parameterised queries代替直接值

答案 1 :(得分:0)

An access token is required to request this resource

此外,

这对你在这里所做的事情非常错误,

SqlCommand Comm1 = new SqlCommand("Select Active from dbo.SQLInfrastructure WHERE [Instance] LIKE  '" + label1.Text + "%'", connn);
connn.Open();
SqlDataReader DR1 = Comm1.ExecuteReader();

this.activeCheckBox.Checked = DR1.Read() && DR.GetBoolean(0);

connn.Close();

因为,if (Comm1==1){} 对象SqlCommand中的LarsTech在评论中不能包含整数值。

答案 2 :(得分:0)

DataAdapter可能是另一种解决方案,

SqlDataAdapter adp = new SqlDataAdapter("command",connection);
DataTable dt = new DataTable();
adp.Fill(dt);

if((int)dt.AsEnumerable().First()["Active"] == 1) {
    this.activeCheckBox.Checked = false;
}
else{
    this.activeCheckBox.Checked = true;
}

希望有所帮助,

答案 3 :(得分:0)

查看ExecuteScalar()类的SqlCommand方法:

this.activeCheckBox.Checked = (bool)Comm1.ExecuteScalar;

此外,正如STLDeveloper所示,您应该使用SqlParameters将用户输入传递到SQL语句中。