1

我想在标签中显示结果,我写了一个查询,通过它我得到一些记录,我想根据名称分配这些记录。

我有 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 条记录。

请有人告诉我如何从代码背后分配标签中的记录。

4

2 回答 2

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"]);
            ...
        }
    }
}
于 2012-06-22T09:25:00.527 回答
0

您是说您想知道如何将代码中的标签控件 ID 与查询返回的名称相匹配。如果是这样,您可以使用

Page.FindControl()

或者

Control.FindControl()

在您遍历返回的数据时匹配正确的控件。您将需要添加一些额外的代码来处理丢失的记录(即示例中的 D)。您后面的代码需要知道可能有多少记录(即,可能是一个简单的 for 循环来迭代所需的次数)。

http://msdn.microsoft.com/en-us/library/31hxzsdw.aspx

于 2012-06-22T09:27:57.660 回答