目前我有一个文字(称为unitValues),它显示SQL查询的结果(这是度量单位)。它工作正常,除了,我想用逗号分隔每个度量单位。现在我的代码设置如何,总是会添加一个额外的逗号。所以,而不是:
value1,value2,value 3
我明白了:
value1,value2,value3,
有没有办法阻止将额外的逗号放在查询结果列表的末尾?
这是从数据库获取SQL数据并将其放入文字的代码:
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
}
提前致谢!
答案 0 :(得分:2)
首先添加逗号而不是之后(并绕过第一项):
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
}
}
答案 1 :(得分:1)
您可以直接使用T-SQL查询执行此操作:
SELECT DISTINCT STUFF((SELECT ', ' + [name]
FROM [baird_UnitOfMeasure]
FOR XML PATH ('')), 1, 1, '') AS DelimList
FROM [baird_UnitOfMeasure]
答案 2 :(得分:0)
unitValues= unitValues.TrimEnd(',');
答案 3 :(得分:0)
var list = new List<string>();
while (reader.Read()) list.Add(reader["name"]);
unitValues.Text = list.Aggregate( (prev,cur) => prev + ", " + cur);