使用SQL和转发器控件从数据库加载值

时间:2014-02-17 22:04:19

标签: asp.net repeater

我已经获得了一个带有"冠军联赛"的数据库文件。组。有信息的表格如下所示:" Team:Real Madrid,group:A;球队:曼彻斯特UTD,小组:A;球队:Chelsea London,Group:A;球队:阿森纳伦敦,小组:A;球队:Fc巴塞罗那队,B组;球队:曼城队,B组;球队:马德里竞技队,小组:B;球队:尤文图斯,小组:B;"此时,为了从数据库I接收值,我正在使用8个中继器(每个组中的每个中继器)来渲染组的html表,以及后面的代码:

OleDbConnection con = new OleDbConnection();
    con.ConnectionString = "provider=microsoft.jet.oledb.4.0; data source=D:/VisualWebSitesProject/EURO-PILKA/bazyDanych/ligi.mdb";
    con.Open();

    DataSet ds = new DataSet();
    OleDbDataAdapter da = new OleDbDataAdapter();
    da = new OleDbDataAdapter("Select * From ChampionsLeague WHERE Group LIKE A ORDER By Points DESC", con);
    da.Fill(ds);
    groupA.DataSource = ds;
    groupA.DataBind();
    con.Close();

    con.Open()
    DataSet ds2 = new DataSet();
    OleDbDataAdapter da2 = new OleDbDataAdapter();
    da2 = new OleDbDataAdapter("Select * From ChampionsLeague WHERE Group LIKE B ORDER By Points DESC", con);
    da2.Fill(ds2);
    groupB.DataSource = ds2;
    groupB.DataBind();
    con.Close();

和其他组相同。 Everythink工作正常,但我想知道:这是一个更好的方法吗?没有使用那么多转发器或数据集?我担心这一点,因为我也希望创造一个#34;世界杯"团体(8个中继者)和"欧洲联盟"组(12个中继器),我认为页面加载速度很慢..

中继器构造:

<asp:Repeater ID="groupA" runat="server">
                    <HeaderTemplate>
                        <div class="wygladNaglowekTabele wygladNaglowekTabeleOnload">GROUP A</div>
                        <table id="liga" class="wygladTabelaLiga">
                            <tr>
                                <td class="szerokosc1 color3">Lp.</td><td class="szerokosc2 color3 wysrodkuj">DRUZYNA</td><td class="szerokosc1 color3">Lm</td><td class="szerokosc1 color3">B</td><td class="szerokosc1 color3">Pts</td>
                            </tr>
                    </HeaderTemplate>
                    <ItemTemplate>
                        <tr>
                            <td class="szerokosc1 color2"><%#Container.ItemIndex +1%></td><td class="szerokosc2 color2"><%#Eval("Team")%></td><td class="szerokosc1 color2"><%#Eval("LiczbaMeczy")%></td><td class="szerokosc1 color2"><%#Eval("LiczbaGoliStrzelonych")%></td><td class="szerokosc1 color2"><%#Eval("Points")%></td>
                        </tr>
                    </ItemTemplate>
                    <AlternatingItemTemplate>
                         <tr>
                            <td class="szerokosc1 color"><%#Container.ItemIndex +1%></td><td class="szerokosc2 color"><%#Eval("Team")%></td><td class="szerokosc1 color"><%#Eval("LiczbaMeczy")%></td><td class="szerokosc1 color"><%#Eval("LiczbaGoliStrzelonych")%></td><td class="szerokosc1 color"><%#Eval("Points")%></td>
                        </tr>
                    </AlternatingItemTemplate>
                    <FooterTemplate>
                        </table>
                    </FooterTemplate>
                </asp:Repeater>

感谢您的任何建议!而且我很抱歉我的英语..

1 个答案:

答案 0 :(得分:0)

你可以在一个调用中获取所有组,并在一个StringBuilder中以编程方式创建最终的html标记,然后将stringBuilder字符串放到像asp:Literal这样的控件