c#datatable查询用于重写类似记录的逗号分隔字符串 [英] c# datatable query for retriving similar records comma separated string

查看:60
本文介绍了c#datatable查询用于重写类似记录的逗号分隔字符串的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

嘿所有,

我有一个数据表。

我有两个列,即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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆