如何使用 C# 添加 "li" 到 "ul" 标签

How to add "li" to "ul" tag with C#

我正在尝试从 Sql 数据库中获取一些名称,并将它们作为“li”附加到预先创建的“ul”中,代码​​如下。我得到的是“System.Data.Common.DataRecordInternal”而不是我在 Sql 中的数据 可能是什么问题?

同样,使用此代码我无法获取 SQL 中的第一项。我的意思是我在 Sql 中总共有 9 个项目,但我只得到 8 个“System.Data.Common.DataRecordInternal”。

代码:

HTML

<div class="modal-body" style="width: 1000px;">
    <ul class="list-group" runat="server" id="A3List">
    </ul>
</div>

C#

protected void loadEval_ServerClick(object sender, EventArgs e)
{
    SqlCommand comd = new SqlCommand("select name from A3_Coaching", con.connection());
    SqlDataReader dr = comd.ExecuteReader();

    while (dr.Read())
    {
        foreach (var r in dr)
        {
            HtmlGenericControl li = new HtmlGenericControl("li");
            A3List.Controls.Add(li);
            li.InnerHtml = r.ToString();
        }
    }
}

您需要从数据中读取实际的列名称 reader 而不仅仅是执行 .ToString 来打印出基础类型的名称。您也不需要额外的 foreach,DataReader 上的 while 就是您的循环。试试下面的方法。

protected void loadEval_ServerClick(object sender, EventArgs e)
{
    SqlCommand comd = new SqlCommand("select name from A3_Coaching", con.connection());
    SqlDataReader dr = comd.ExecuteReader();

    while (dr.Read())
    {
        HtmlGenericControl li = new HtmlGenericControl("li");
        A3List.Controls.Add(li);
        li.InnerHtml = dr["name"];        
    }
}