如何使用 sql 将多个值返回到标签中
本文关键字:返回 标签 何使用 sql | 更新日期: 2023-09-27 18:33:01
有一个
类似的问题在stackoverflow上没有答案,但我相信我已经非常接近解决它了。但基本上,我的 sql 语句返回多个值,但标签中只显示一个值,而它应该是 4 或 5 个值。
protected void btnPopulate_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection(strings.settings.connectionString);
SqlCommand command = new SqlCommand("SELECT ID FROM dbo.MDRMASTER WHERE MASTERPID = @MASTERPID",con);
command.Parameters.Add("@MASTERPID", SqlDbType.NVarChar).Value = txtMASTERID.Text;
con.Open();
SqlDataReader dr = command.ExecuteReader();
while (dr.Read())
{
string ID = dr["ID"].ToString();
lblIDs.Text = ID;
}
con.Close();
}
任何帮助将不胜感激。谢谢!
每次通过循环都会覆盖标签的文本。您可以简单地更改:
lblIDs.Text = ID;
自:
lblIDs.Text += ID + " ";
并且基本上用空格分隔的列表填充标签。
此外,作为一般最佳实践编程提示:在此示例中,您将 UI 代码与数据访问代码非常紧密地耦合。您应该研究MVC,演示器和其他几个选项,以避免紧密耦合。这是一篇针对初学者的文章。
你的意思是这样?
var ids = List<string>();
while (dr.Read())
{
ids.Add(dr["ID"].ToString());
}
lblIDs.Text = String.Join(", ", ids);
您将用
dr.Read()
的每一步替换文本
尝试以下操作
var text = new StringBuilder();
while (dr.Read())
{
text.Append(dr["ID"].ToString());
}
lblIDs.Text = text.ToString();