我想在Label中显示结果,我写了一个查询,通过该查询我得到了一些记录,我想根据名称分配这些记录。
我有5个标签:A,B,C,D,E这些标签我想显示记录。
查询:
select s.Name, count(1)as Records from tbl_Case tc
inner join tbl_subcase ts on ts.id = tc.Id
inner join tbl_supercase tsc on tsc.id = tc.supercaseid
inner join course c on c.id = b.courseid
where s.isvalid = 1 group by s.Name
从查询中假设我得到A = 4,B = 10,c = 2,E = 100并且我没有得到D的记录所以我想在标签中显示为4条记录,10条记录,2条记录,未找到记录,100条记录。
请有人告诉我如何从Code Behind中分配标签中的记录。
答案 0 :(得分:2)
lblA.Text = lblB.Text = ... = "No records found";
using (var con = new SqlConnection("Data Source=myServerAddress;" +
"Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;"))
{
con.Open();
var com = con.CreateCommand();
com.CommandType = CommandType.Text;
com.CommandText = @"
select s.Name, count(1)as Records from tbl_Case tc
inner join tbl_subcase ts on ts.id = tc.Id
inner join tbl_supercase tsc on tsc.id = tc.supercaseid
inner join course c on c.id = b.courseid
where s.isvalid = 1 group by s.Name";
using (var read = com.ExecuteReader())
{
while (read.Read())
{
if (read["Name"] as string == "A")
lblA.Text = Convert.ToString(read["tc"]);
else if (read["Name"] as string == "B")
lblA.Text = Convert.ToString(read["tc"]);
...
}
}
}
答案 1 :(得分:0)
您是否想要知道如何将代码中的标签控件ID与查询返回的名称进行匹配。如果是这样,您可以使用
Page.FindControl()
或
Control.FindControl()
在迭代返回的数据时匹配正确的控件。您需要添加一些额外的代码来处理丢失的记录(即示例中的D)。您的代码背后需要知道可能有多少条记录(即可能是一个简单的for循环迭代所需的次数)。