如何使用 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();
    }

任何帮助将不胜感激。谢谢!

如何使用 sql 将多个值返回到标签中

每次通过循环都会覆盖标签的文本。您可以简单地更改:

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();