我需要在数据库中根据值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事件上。这段代码不起作用,但传达了我想要完成的任务。
答案 0 :(得分:0)
基本上,在您可以使用阅读器的内容之前,您必须将移动到第一条记录
另外(继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语句中。