操作字符串数据表内容

本文关键字:数据表 字符串 操作 | 更新日期: 2023-09-27 18:07:01

我有一个数据表,其中一些列有逗号分隔的字符串,单词之间没有空格,它们之间没有逗号(abc,def)。你能告诉我如何在每个逗号(abc, def)之后添加一个空格,而不是通过每行循环(Linq?)吗?列可以有一个字符串,也可以根本没有字符串。谢谢。

操作字符串数据表内容

using System.Threading.Tasks;
public static void Main()
{
            var table = new DataTable("MyTable");
            table.Columns.Add("Col1", typeof(string));
            table.Rows.Add("abc,def");
            table.Rows.Add("ghi,jkl");
            Parallel.ForEach(table.AsEnumerable(), (row => row.SetField("Col1", row.Field<string>("Col1").Replace(",", ", "))));    
}

对于。net 3.5,你可以应用List ForEach实现:

new List<DataRow>(table.AsEnumerable()).ForEach(row => row.SetField("Col1", row.Field<string>("Col1").Replace(",", ", ")));

或者更好,定义扩展方法:

public static class IEnumerableExtensions
{
    public static void ForEach<T>(this IEnumerable<T> source, Action<T> action)
    {
        foreach (var item in source)
            action(item);            
    }
}

然后:

table.AsEnumerable().ForEach(row => row.SetField("Col1", row.Field<string>("Col1").Replace(",", ", ")));

您可以运行包含如下更新语句的SqlCommand:

UPDATE table SET column = REPLACE(column, ',', ', ');