【问题标题】:How the display the MySQL Table to HTML table using asp.net c#如何使用asp.net c#将MySQL表显示为HTML表
【发布时间】:2019-04-21 23:21:16
【问题描述】:

我在处理如何在 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>

【问题讨论】:

  • 你能显示代码隐藏 (.aspx.vb) 文件中的代码吗?
  • @A-A-ron 先生,我已经附上了代码。这是 C# 代码。
  • 我已经提供了第二个版本,你可以在下面重新检查我的答案。

标签: c# mysql asp.net


【解决方案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)
{
    sb.Append("<tr><td colspan='5'>No record</td></tr>");
}
else
{
    foreach(var acc in lst)
    {
        sb.Append("<tr>");
        sb.AppendFormat("<td>{0}</td>", acc.idNumber);
        sb.AppendFormat("<td>{0}</td>", acc.fName);
        sb.AppendFormat("<td>{0}</td>", acc.uType);
        sb.AppendFormat("<td>{0}</td>", acc.email);
        sb.AppendFormat("<td class='label label-table label-info'>{0}</td>", acc.status);
        sb.Append("</tr>");
    }
}

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)
{
    sb.Append("<tr><td colspan='5'>No record</td></tr>");
}
else
{
    foreach (var acc in lst)
    {
        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>
");
    }
}

sb.Append("</table>");

string htmlTable = sb.ToString();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-18
    • 2015-04-18
    • 2011-05-17
    相关资源
    最近更新 更多