我想将数据库里的数据取出来然后在每个对应的lable上显示。我的做法如下。但是我感觉这样太麻烦了,也太笨了。因为初学所以只想到了这种办法。不知道还有没有更好,更简单方法。将数据很快高效率的绑定到控件上。//绑定方法
public void Bind()
{
            string meetingID = Request.Params["MeetingCountID"];
            string sql = "select [name],[startDate],[finishDate],[applyDate],[content]," +
                                 "case when [MettingType]=1 then '所有人员' else [participator] end as participator," +
                                 "case when [startDate]<getdate() and getdate()<[finishDate] then '正在进行' else case when getdate()<[startDate] then '未开始' else '已结束' end end as estate ,[BoardroomName]," +
                                 "[EmpName],[DeptName],[BranchName],[MeetingCount].[MeetingCountID],[Boardroom].[BoardroomID],[MeetingCount].[Servers],[MeetingCount].[Nature],"+
                                 "[MeetingCount].[participatorID],cast([MeetingUser].[DepID] as varchar(5))+'*'+cast([MeetingUser].[EmpID] as varchar(5)) as [IDS],[MeetingCount].[approve],[MeetingCount].[approveDate] " +
                         "from [MeetingCount] join [Boardroom] on [MeetingCount].[BoardroomID]=[Boardroom].[BoardroomID]" +
                                 "join [MeetingUser] on [MeetingCount].[MeetingUserID]=[MeetingUser].[MeetingUserID]" + 
                         "where MeetingCount.[MeetingCountID]=" + meetingID;
            ArrayList al = (new Meeting()).GetDataOdd(sql);
            nameLab.Text = al[0].ToString();
            startDateLab.Text = al[1].ToString();
            finishDateLab.Text = al[2].ToString();
            applyDateLab.Text = al[3].ToString();
            contentLab.Text = al[4].ToString();
            participatorLab.Text = al[5].ToString();
            estateLab.Text = al[6].ToString();
            BranchNameLab.Text = al[10].ToString();
            EmpNameLab.Text = al[8].ToString();
            DeptNameLab.Text = al[9].ToString();
            boardroomLab.Text = al[7].ToString();
            Label2.Text = al[11].ToString();//会议ID
            Label1.Text = al[12].ToString();//会议室ID
            serverLab.Text = al[13].ToString();
            NatureLab.Text = al[14].ToString();
            participator2Lab.Text = al[15].ToString();
            EmpIDs.Text = al[16].ToString();
            approveLab.Text = al[17].ToString();
            approveDateLab.Text = al[18].ToString();
            al.Clear();
}

解决方案 »

  1.   

    LZ应该看看怎么 用数据控件gridview,repeater...
      

  2.   

    拖一个FormView到设计界面,指定数据源,选择SqlDataSource,把上面的Sql语句拷进去,最后部分改成where MeetingCount.[MeetingCountID]=@meetingID;
    下一步时会问@mettingID从哪里获得,选择QueryString, 名称:MeetingCountID结束。FormView会自动为你生成一大堆Label.
      

  3.   

    <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" Width="550px"
                                OnRowDataBound="GridView1_RowDataBound" Height="140px">
                                <Columns>
                                    <asp:TemplateField HeaderText="用户编号">
                                        <EditItemTemplate>
                                            <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("cid") %>'></asp:TextBox>
                                        </EditItemTemplate>
                                        <ItemTemplate>
                                            <table align="center">
                                                <tr align="center">
                                                    <td>
                                                        <asp:Label ID="Label3" runat="server" Text='<%# Bind("cid") %>'></asp:Label></td>
                                                </tr>
                                            </table>
                                        </ItemTemplate>
                                    </asp:TemplateField>
                                    <asp:TemplateField HeaderText="用户帐号">
                                        <EditItemTemplate>
                                            <asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("username") %>'></asp:TextBox>
                                        </EditItemTemplate>
                                        <ItemTemplate>
                                            <table align="center">
                                                <tr align="center">
                                                    <td>
                                                        <asp:Label ID="Label4" runat="server" Text='<%# Bind("username") %>'></asp:Label></td>
                                                </tr>
                                            </table>
                                        </ItemTemplate>
                                    </asp:TemplateField>
                                    <asp:TemplateField HeaderText="电子邮箱">
                                        <ItemTemplate>
                                            <table align="center">
                                                <tr align="center">
                                                    <td>
                                                        <asp:Label ID="Label5" runat="server" Text='<%# Bind("email") %>'></asp:Label></td>
                                                </tr>
                                            </table>
                                        </ItemTemplate>
                                    </asp:TemplateField>
                                    <asp:TemplateField HeaderText="用户权限">
                                        <ItemTemplate>
                                            <table align="center">
                                                <tr align="center">
                                                    <td>
                                                        <asp:Label ID="Label6" runat="server" Text='<%# Bind("aleave") %>'></asp:Label></td>
                                                </tr>
                                            </table>
                                        </ItemTemplate>
                                    </asp:TemplateField>
                                    <asp:TemplateField HeaderText="修 改">
                                        <ItemTemplate>
                                            <table align="center">
                                                <tr align="center">
                                                    <td>
                                                        <asp:Label ID="Label2" runat="server" Width="25px"><a href="Admin_EditUser.aspx?cid=<%#Eval("cid")%>">修改</a></asp:Label></td>
                                                </tr>
                                            </table>
                                        </ItemTemplate>
                                    </asp:TemplateField>
                                    <asp:TemplateField HeaderText="删 除">
                                        <ItemTemplate>
                                            <table align="center">
                                                <tr align="center">
                                                    <td>
                                                        <asp:Label ID="Label1" runat="server"><a href="DeleteUser.aspx?cid=<%#Eval("cid")%>">删除</a></asp:Label></td>
                                                </tr>
                                            </table>
                                        </ItemTemplate>
                                    </asp:TemplateField>
                                </Columns>
                            </asp:GridView>
      

  4.   

    8楼的朋友 提供了一个很好的方法。但是我需要的不是GridView或DataList,太不灵活了。
    而且这些Lable分布在页面各个地方。Lable在页面的分布是不规则的。
    并不是很规则的几行几列。。所以不知道有没有更简单的方法。听说有一种叫反射的技术,不知道可不可以。PS:楼上朋友这样的确可以。但是我感觉有点笨。呵呵。不知道高手们是怎么赋值的。
      

  5.   

    repeater 小巧 实用 
    不过缺点也有
      

  6.   


    真不知道你在想什么,你这应用明显就是一次显示一条记录的。FormView结合数据源控件一行代码都不用写就能给你弄出一大堆绑定好了不起Label,然后怎么排版你再细化不就得了吗?真能折腾:-)
      

  7.   

    绑定好了不起Label=>绑定好了的
      

  8.   

    劝你还是用鼠标拖个FormView试一下。看来你干脆去没了解FormView是干什么的。