从数据库中的数据填充asp.net表

本文关键字:asp net 填充 数据 数据库 | 更新日期: 2023-09-27 18:29:11

我有几个关于从asp.net 中的数据表填充表的问题

我已经正确地从数据库中提取了数据,但现在我有了一个包含数据的表。如何填充我的asp.net表控件?我知道如何访问行和列数据,但不知道如何"绑定"或"填充"Table控件。

我考虑过使用网格视图,但有些人说它们加载速度慢,所以我避免这样做。

如有任何帮助,将不胜感激

HTML

<asp:Table runat="server" ID="table" CssClass="table">
    <asp:TableHeaderRow>
        <asp:TableCell>Cell 1 Header</asp:TableCell>
        <asp:TableCell>Cell 2 Header</asp:TableCell>
    </asp:TableHeaderRow>
    <asp:TableRow>
        <asp:TableCell ID="cell1"></asp:TableCell>
        <asp:TableCell ID="cell2"></asp:TableCell>
    </asp:TableRow>
</asp:Table>

C#

        String sql = "SELECT * FROM TABLE";
        SqlCommand command = new SqlCommand(sql, dbConnection);
        SqlDataAdapter dataAdapter = new SqlDataAdapter(command);
        DataSet dataSet = new DataSet();
        dataAdapter.Fill(dataSet);
        DataTable table = dataSet.Tables[0];
        // Loop through rows
        foreach (DataRow row in table.Rows)
        {
            // Loop through columns
            foreach(DataColumn column in table.Columns){
            }
        }

从数据库中的数据填充asp.net表

我给你的代码,如何使用中继器:

<asp:Repeater ID="rptTable" runat="server">
    <HeaderTemplate>
        <table class="table">
    </HeaderTemplate>
    <ItemTemplate>
        <tr>
            <td width="50%"><%# Eval("identifier") %></td>
            <td width="*"><%# Eval("value") %></td>
        </tr>
    </ItemTemplate>
    <FooterTemplate>
        </table>
    </FooterTemplate>
</asp:Repeater>

还有你的代码:

SqlConnection con = new SqlConnection(connectionString);
SqlCommand cmd = new SqlCommand("select identifier, value from table_name", con);
try{
    con.Open();
    SqlDataAdapter sda = new SqlDataAdapter(cmd);
    DataSet ds = new DataSet();
    sda.Fill(ds);
    rptTable.DataSource = ds;
    rptTable.DataBind();
}
catch(Exception ex){
    //...
}
finally{
    con.Close();
}

当然,您必须根据需要更改表的设计和sql查询。我刚刚展示了的基本结构

你可以试试这个:

private void GenerateTable()
{
    DataTable dt = this.GetData(); //GetData returns your datatable from sql
    for (int i = 0; i < dt.Rows.Count; i++)
    {
        TableRow row = new TableRow();
        for (int j = 0; j < dt.Columns.Count; j++)
        {
            TableCell cell = new TableCell();
            cell.Text = dt.Rows[i][j].ToString();
            row.Cells.Add(cell);
        }
        table.Rows.Add(row); 
    }
}