我正在尝试从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();
}
}
}发布于 2021-02-12 17:14:09
您需要从数据读取器中读取实际的列名,而不仅仅是执行一个.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"];
}
}https://stackoverflow.com/questions/66168746
复制相似问题