首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将查询结果显示为逗号分隔的文字

将查询结果显示为逗号分隔的文字
EN

Stack Overflow用户
提问于 2014-03-28 04:01:58
回答 4查看 1.1K关注 0票数 1

目前,我有一个文字(称为unitValues),它显示SQL查询的结果(这是度量单位)。它工作得很好,除了我想用逗号分隔每个度量单位。现在,我的代码是如何设置的,总是在末尾添加一个额外的逗号。因此,不是:

value1、value2、值3

我得到了:

value1,value2,value3,

有没有办法防止将多余的逗号放在查询结果列表的末尾?

下面是从数据库获取SQL数据并将其放入文本中的代码:

代码语言:javascript
复制
 protected void getUnits()
{
    try
    {
        System.Data.SqlClient.SqlDataReader dr = null;
        using (SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings["AbleCommerce"].ToString()))
        {
            SqlCommand cmd = new SqlCommand("SELECT [name] FROM [baird_UnitOfMeasure]", cn);
            cmd.CommandType = CommandType.Text;
            cn.Open();
            using (IDataReader reader = cmd.ExecuteReader())
            {
                while (reader.Read())
                {
                    unitValues.Text += (reader["name"].ToString()) +", ";
                }
             }
            cn.Close();

        }
    }
    catch (Exception eX)
    {
        \\catch error
    }

提前感谢!

EN

回答 4

Stack Overflow用户

发布于 2014-03-28 04:04:14

首先附加逗号,而不是在后面(并跳过第一项):

代码语言:javascript
复制
protected void getUnits()
 {
   try
   {
    System.Data.SqlClient.SqlDataReader dr = null;
    using (SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings["AbleCommerce"].ToString()))
    {
        SqlCommand cmd = new SqlCommand("SELECT [name] FROM [baird_UnitOfMeasure]", cn);
        cmd.CommandType = CommandType.Text;
        cn.Open();
        using (IDataReader reader = cmd.ExecuteReader())
        {
            while (reader.Read())
            {
               if(!String.IsNullOrEmpty(unitValues.Text)){
                  unitValues.Text += ", ";
               }
               unitValues.Text += reader["name"].ToString();
            }
         }
        cn.Close();

    }
   }
   catch (Exception ex)
   {
      \\catch error
   }
}
票数 2
EN

Stack Overflow用户

发布于 2014-03-28 04:27:03

您可以直接使用T-SQL查询执行此操作,如下所示:

代码语言:javascript
复制
SELECT DISTINCT STUFF((SELECT ', ' + [name]
      FROM [baird_UnitOfMeasure]
      FOR XML PATH ('')), 1, 1, '') AS DelimList
      FROM [baird_UnitOfMeasure]
票数 1
EN

Stack Overflow用户

发布于 2014-03-28 04:04:21

代码语言:javascript
复制
unitValues= unitValues.TrimEnd(',');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22698031

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档