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

时间:2016-01-06 22:47:30

标签: c# mysql asp.net sql-server

我有一些关于从asp.net中的数据表填充表格的问题

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

我研究过使用gridview,但是有些人说他们加载速度慢,所以我避免这样做。

非常感谢任何帮助

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){

            }
        }

2 个答案:

答案 0 :(得分:1)

我给你代码,如何使用Repeater:

<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查询。我只是展示了基本结构

答案 1 :(得分:0)

你可以试试这个:

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); 
    }
}