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レコード。

CodeBehindからラベルにレコードを割り当てる方法を教えてください。

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 に答える