怎么对一个DataTable 使用select 这样的方式来更新某个字段?

时间:2023-01-31 04:52:28
不想使用 循环的方式,例如有以下表的格式,我想把所有name 字段的前后空格都去掉,怎么使用select返回一个新的 datatable


            DataTable myTable = new DataTable();  
            myTable.Columns.Add("name");
            myTable.Columns.Add("dept");

            myTable.Rows.Add(new object[] { "tom      ", "sale" });
            myTable.Rows.Add(new object[] { "nick  ", "backup" });
            myTable.Rows.Add(new object[] { "jack", "elect" });
            myTable.Rows.Add(new object[] { "may", "sale" });

           myTable=myTable.AsEnumerable().Select................

10 个解决方案

#1


你这样还不如返回一个强类型集合……为啥一定要DataTable

#2


加个计算列
myTable.Columns.Add("trimedname");
myTable.Columns["trimedname"].Expression="ltrim(rtrim(name))";

#3


最终还是要使用循环的方式的。

#4


因为我是要绑定到前台显示的,希望能像sql语言那样操作。 

#5


引用 4 楼 marklr 的回复:
因为我是要绑定到前台显示的,希望能像sql语言那样操作。 

datatable 没有 实现IEnumberable接口,不能像sql那个更新。 你的数据集   不如 换成list集合 

#6


你用select,后台不是一样要循环
即使select能实现你的需求,这样也只是节约代码量,并不节约执行时间,而且要耗费额外的内存来放临时数据

#7


的确,我主要目的是节约代码量,目前的使用场合是不用考虑内存和性能的损耗,这些几乎可以忽略不计,重点是敏捷开发。

我只想知道是否有这样的写法。

#8


引用 7 楼 marklr 的回复:
的确,我主要目的是节约代码量,目前的使用场合是不用考虑内存和性能的损耗,这些几乎可以忽略不计,重点是敏捷开发。

我只想知道是否有这样的写法。


var tt = from p in myTable.AsEnumerable()
                     select new
                     {
                         name = p.Field<string>("name").Trim(),
                         dept = p.Field<string>("dept").Trim(),
                     };

#9


用LINQ查询

#10


不想使用循环? 太任性了吧, 循环是必须的, 最多就用 LINQ 代替循环.

#1


你这样还不如返回一个强类型集合……为啥一定要DataTable

#2


加个计算列
myTable.Columns.Add("trimedname");
myTable.Columns["trimedname"].Expression="ltrim(rtrim(name))";

#3


最终还是要使用循环的方式的。

#4


因为我是要绑定到前台显示的,希望能像sql语言那样操作。 

#5


引用 4 楼 marklr 的回复:
因为我是要绑定到前台显示的,希望能像sql语言那样操作。 

datatable 没有 实现IEnumberable接口,不能像sql那个更新。 你的数据集   不如 换成list集合 

#6


你用select,后台不是一样要循环
即使select能实现你的需求,这样也只是节约代码量,并不节约执行时间,而且要耗费额外的内存来放临时数据

#7


的确,我主要目的是节约代码量,目前的使用场合是不用考虑内存和性能的损耗,这些几乎可以忽略不计,重点是敏捷开发。

我只想知道是否有这样的写法。

#8


引用 7 楼 marklr 的回复:
的确,我主要目的是节约代码量,目前的使用场合是不用考虑内存和性能的损耗,这些几乎可以忽略不计,重点是敏捷开发。

我只想知道是否有这样的写法。


var tt = from p in myTable.AsEnumerable()
                     select new
                     {
                         name = p.Field<string>("name").Trim(),
                         dept = p.Field<string>("dept").Trim(),
                     };

#9


用LINQ查询

#10


不想使用循环? 太任性了吧, 循环是必须的, 最多就用 LINQ 代替循环.