操作字符串数据表内容
本文关键字:数据表 字符串 操作 | 更新日期: 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, ',', ', ');