猿问

如何使用 asp.net c# 将 MySQL 表显示为 HTML 表

我在处理如何在 HTML 数据表中显示表的行时遇到了问题。我想在asp.net中使用c#在HTML数据表中显示存储在Mysql表中的信息。问题是,代码可以工作,但是 HTML 表格中只显示最后一行。请帮忙。代码如下,


C#


protected void ListOfEmployee()

{

    List<EmployeeAccounts> empList = new List<EmployeeAccounts>();

    using (MySqlConnection conn = new MySqlConnection(connectDB()))

    {

        conn.Open();

        MySqlCommand cmd = new MySqlCommand("SELECT * FROM user", conn);

        cmd.CommandType = CommandType.Text;

        cmd.CommandTimeout = 0;

        MySqlDataReader dr = cmd.ExecuteReader();

        while (dr.Read())

        {

            empList.Add(new EmployeeAccounts

            {

                idNumber = dr["user_id"].ToString(),

                uName = dr["username"].ToString(),

                fName = dr["fullname"].ToString(),

                uType = dr["usertype"].ToString(),

                email = dr["email"].ToString(),

                status = dr["status"].ToString()

            });

        }

        dr.Close();

        conn.Close();

    }

}


public class EmployeeAccounts {

    public string idNumber;

    public string uName;

    public string fName;

    public string uType;

    public string email;

    public string status;

}

ASPX


<asp:Table ID="tblUserList" CssClass="table table-hover table-vcenter" runat="server">

<asp:TableHeaderRow TableSection="TableHeader"> 

<asp:TableHeaderCell >#</asp:TableHeaderCell>

<asp:TableHeaderCell >Full Name</asp:TableHeaderCell>

<asp:TableHeaderCell >Email</asp:TableHeaderCell>

<asp:TableHeaderCell >Status</asp:TableHeaderCell>

<asp:TableHeaderCell >User Type</asp:TableHeaderCell>

</asp:TableHeaderRow>

<asp:TableRow>

<asp:TableCell ID="cellID"></asp:TableCell>

<asp:TableCell ID="cellName"></asp:TableCell>

<asp:TableCell ID="cellEmail"></asp:TableCell>

<asp:TableCell CssClass="label label-table label-info" ID="cellStatus"></asp:TableCell>

<asp:TableCell ID="celluType"></asp:TableCell>

</asp:TableRow>

</asp:Table>


Cats萌萌
浏览 163回答 1
1回答

芜湖不芜

List<EmployeeAccounts> lst = GetEmployeeAccounts();var sb = new System.Text.StringBuilder();sb.Append(@"<table class='table table-hover table-vcenter'><tr><th>ID</th><th>Full Name</th><th>Type</th><th>Email</th><th>Status</th></tr>");if(lst.Count==0){&nbsp; &nbsp; sb.Append("<tr><td colspan='5'>No record</td></tr>");}else{&nbsp; &nbsp; foreach(var acc in lst)&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; sb.Append("<tr>");&nbsp; &nbsp; &nbsp; &nbsp; sb.AppendFormat("<td>{0}</td>", acc.idNumber);&nbsp; &nbsp; &nbsp; &nbsp; sb.AppendFormat("<td>{0}</td>", acc.fName);&nbsp; &nbsp; &nbsp; &nbsp; sb.AppendFormat("<td>{0}</td>", acc.uType);&nbsp; &nbsp; &nbsp; &nbsp; sb.AppendFormat("<td>{0}</td>", acc.email);&nbsp; &nbsp; &nbsp; &nbsp; sb.AppendFormat("<td class='label label-table label-info'>{0}</td>", acc.status);&nbsp; &nbsp; &nbsp; &nbsp; sb.Append("</tr>");&nbsp; &nbsp; }}sb.Append("</table>");string htmlTable = sb.ToString();在 ASP.NET 页面添加一个占位符:<asp:PlaceHolder ID="ph1" runat="server"></asp:PlaceHolder>然后在后面的代码处,继续编码:ph1.Controls.Add(new LiteralControl(htmlTable));==================================更新:版本 2(2019 年 10 月 25 日)List<EmployeeAccounts> lst = GetEmployeeAccounts();var sb = new System.Text.StringBuilder();sb.Append(@"<table class='table table-hover table-vcenter'><tr><th>ID</th><th>Full Name</th><th>Type</th><th>Email</th><th>Status</th></tr>");if (lst.Count == 0){&nbsp; &nbsp; sb.Append("<tr><td colspan='5'>No record</td></tr>");}else{&nbsp; &nbsp; foreach (var acc in lst)&nbsp; &nbsp; {&nbsp; &nbsp; &nbsp; &nbsp; sb.Append($@"<tr><td>{acc.idNumber}</td><td>{acc.fName}</td><td>{acc.uType}</td><td>{acc.email}</td><td class='label label-table label-info'>{acc.status}</td></tr>");&nbsp; &nbsp; }}sb.Append("</table>");string htmlTable = sb.ToString();
随时随地看视频慕课网APP
我要回答