c#datatable查询用于重写类似记录的逗号分隔字符串 [英] c# datatable query for retriving similar records comma separated string
问题描述
嘿所有,
我有一个数据表。
我有两个列,即msgid和empid。
列就像< br $> b $ b
srno。 msgstr empname
1 1 akshay
2 1 sameer
3 1 akash
4 2 sidd
现在我想要的是..当单个msgid时,我希望所有的empnames以逗号分隔。
输出:akshay,sameer,akash
我怎样才能得到这个??
谢谢
Hey All,
I have a datatable.
In that i have two columns namely msgid and empid.
column is like
srno. msgid empname
1 1 akshay
2 1 sameer
3 1 akash
4 2 sidd
now what i want is ..when for single msgid, i want all empnames to be comma separated.
output: akshay,sameer,akash
How can i get this??
thanks
推荐答案
Hello Shan,
您可以在此处找到您的问题的答案 CodeProject上的[ ^ ]。
问候,
Hello Shan,
The answer to your problem can be found right here[^] on CodeProject.
Regards,
您好,
请尝试以下扩展方法。
Hi,
Try below Extension method.
public static class Extensions
{
/// <summary>
/// Get the Column values as comma separated.
/// </summary>
/// <param name="value">Your Data Table</param>
/// <param name="columnfilter">Name of Column on the basis you want to filter</param>
/// <param name="filterParam">filter value</param>
/// <param name="columnName">Column's values that needs to be comma separated</param>
/// <returns></returns>
public static string GetCommaSeparatedValue(this DataTable value, String columnfilter, String filterParam, String columnName)
{
string retVal = String.Empty;
if (value.Rows.Count > 0)
{
var rowColl = value.AsEnumerable();
retVal = String.Join(",",(from r in rowColl where r.Field<string>(columnfilter) == filterParam select r.Field<string>(columnName)));
}
return retVal.ToString();
}
}
</string></string>
现在使用它来获取逗号分隔值。
Now use this to get comma separated values.
//Sample data.
DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("Movies", typeof(String)));
dt.Columns.Add(new DataColumn("TvSeries", typeof(String)));
dt.Rows.Add("1", "Prison Break");
dt.Rows.Add("1", "How i Met your mother");
dt.Rows.Add("3", "Lost");
dt.Rows.Add("2", "Prison Break");
//now get the values from DataTable.
var str = dt.GetCommaSeparatedValue("Movies", "1", "TvSeries");
您可以在任何地方使用Windows或asp.net。
作为此示例代码你可以根据自己的需要进行改进。
希望这会有所帮助!
you can use this anywhere windows or asp.net.
As this sample code you can refine according to your need.
Hope this helps!
< br $> b $ b
Hi,
public class Row
{
public int msgid { get; set; }
public string empname { get; set; }
}
static void Main(string[] args)
{
List<Row> myDatabase = new List<Row>()
{
new Row(){ msgid = 1, empname="akshay"},
new Row(){ msgid = 1, empname="sameer"},
new Row(){ msgid = 1, empname="akash"},
new Row(){ msgid = 4, empname="sidd"},
};
string comma =", ";
int id = 1;
string output = string.Join(comma, (from Row item in myDatabase
where item.msgid == id
select item.empname));
}
这篇关于c#datatable查询用于重写类似记录的逗号分隔字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!