我的数据库中有一个表,其中包含一列NewLanguage(varchar)。我在表中插入新语言,我想选择表的行并将它们分配给由&#39分割的字符串变量;,&#39 ;. 我尝试在代码中选择语言。
public string SelectLanguagesFromDatabase()
{
NpgsqlCommand COM = new NpgsqlCommand(null,dbConnection);
COM.CommandText = "select * from \"Languages\"";
}
如何从数据库中选择roes并将它们分配给字符串变量?
In an example
如果语言列是
NewLanguage
C
c++
java
我想要一个字符串为" C,c ++,java"。 我怎样才能做到这一点 ? 感谢。
答案 0 :(得分:2)
您可以使用string_agg连接逗号分隔文本中特定列的所有值,如下所示:
SELECT string_agg (NewLanguage,',') FROM "Languages"
答案 1 :(得分:0)
改编自user manual并使用Ilesh Patel's查询:
using System;
using System.Data;
using Npgsql;
public static class NpgsqlUserManual
{
public static void Main(String[] args)
{
NpgsqlConnection conn = new NpgsqlConnection("Server=127.0.0.1;Port=5432;User Id=joe;Password=secret;Database=joedata;");
conn.Open();
NpgsqlCommand command = new NpgsqlCommand("SELECT string_agg(NewLanguage,',') FROM Languages", conn);
String results;
try
{
results = (String)command.ExecuteScalar();
Console.WriteLine("{0}", results);
}
finally
{
conn.Close();
}
}
}