问题描述
比如说对Datatable有条件的批量修改某列数据VFP可以Replace...for,C#只能循环判断,逐项修改,1万条记录怎么办?有没有快捷点的办法?
解决方案
解决方案二:
c#也可以用SQL语句成批修改嘛。
解决方案三:
datasetlinq
解决方案四:
那你为什么不用sql批量更新,非得跟datatable较劲呢
解决方案五:
刚学C#的话,弱智的肯定是你,而不是C#.net
解决方案六:
该回复于2012-04-05 14:56:31被版主删除
解决方案七:
各位大神,请问一下,,,replacefor通过神马实现批量更新?那么C#也这么做呗
解决方案八:
sql支持批量更新。updatesometablesetfield=field+1wherename=xxx
解决方案九:
这个。。。。纯粹是领取十分可用分来的
解决方案十:
大侠们帮看看,最底下一个循环,想不用循环实现://删除没有设置字段名的列for(inti=0;i<xlshead.Rows.Count;i++){if(xlshead.Rows[i]["fld"].ToString()==string.Empty)xlsdt.Columns.Remove(xlshead.Rows[i]["head"].ToString());//删除不符合非空要求的记录//xlsdt=fromxlsdtwhere//deletexlsheadsetfield=field+1wherename=xxxif(xlshead.Rows[i]["nonull"].ToString().ToLower()=="true"){//stringfld=xlshead.Rows[i]["fld"].ToString();//DataRow[]rows=xlsdt.Select(fld+"isnotnull");//xlsdt.Clear();//以下一定要用循环码?想用上面3+...代替,但我写不下去了,仍然需要遍历rowsfor(intj=xlsdt.Rows.Count-1;j>=0;j--){if(xlsdt.Rows[j].IsNull(i)){xlsdt.Rows.RemoveAt(j);}}}
解决方案十一:
权限好低哦,发帖不能编辑修改for(inti=0;i<xlshead.Rows.Count;i++){if(xlshead.Rows[i]["fld"].ToString()==string.Empty)xlsdt.Columns.Remove(xlshead.Rows[i]["head"].ToString());//删除不符合非空要求的记录if(xlshead.Rows[i]["nonull"].ToString().ToLower()=="true"){//stringfld=xlshead.Rows[i]["fld"].ToString();//DataRow[]rows=xlsdt.Select(fld+"isnotnull");//xlsdt.Clear();//以下一定要用循环码?想用上面3行+...代替,但我写不下去了,仍然需要遍历rowsfor(intj=xlsdt.Rows.Count-1;j>=0;j--){if(xlsdt.Rows[j].IsNull(i)){xlsdt.Rows.RemoveAt(j);}}}
解决方案十二:
对啊,这个不是C#慢,是思路不对,应该用SQL语句
解决方案十三:
有时候要是通过c#去实现需要写很多很多代码但是同样的功能一条sql语句足以。。。
解决方案十四:
弱智不弱智,结果说了算。你应该去找vpf做软件的公司,而不要找使用.net的。
解决方案十五:
请你回去用VPF大户你好,大户再见
解决方案:
SQL只能对数据库操作,我现在只是对一个待处理的DataTable操作LinQ虽然可以对DataTable处理,但只有DataTable.Select(),而且其结果还是Rows数组,没有直接批处理删除或修改的处理上面我帖的代码主要目的是:有条件快速删除DataTable中的一些记录,保持剩余的数据还在一个DataTable中。方案1.没有DataTable.Delete(),只有DataTable.Select(),而出来的结果不能直接转入新的DataTable,好像必须遍历,数据量大势必很慢方案2.现有DataTable.Rows.Remove(),还是只能逐条删,照样慢SQL语句如果能直接操作DataTable并立马生成新DataTable就好了。进一步能对多个关联DataTable筛选、汇总、合并等等,然后产生新的DataTable就基本满足啦。刚学C#,感觉数据处理方面很不习惯。我的理解是DataSet,DataTable之类都是临时数据容器,用于程序处理,在有需要反写数据库时再一次性提交给后台数据库。然而感觉这些“临时数据容器”很不方便,N多时候必须遍历。希望老手们指点,如何随心所欲的高效处理“临时”数据。
解决方案:
放开dataTable与dataSet这类东东,(这只是存在内存里的东东!)直接用TSQL语句,
解决方案:
dataTable与dataSet只是在读取数才用到,更新数据谁会用?
解决方案:
引用17楼的回复:
dataTable与dataSet只是在读取数才用到,更新数据谁会用?
比如我从Excel中取得一个数据表,从SqLServer中获得另一个表,这两个表只是程序处理的一些数据源,我总得把它们放在DataTable中吧。我要对这两个数据表进行加工处理,然后得到我想要的结果表,最后写入SQLServer的另一个表。那么在我进行加工处理的时候,当然要用到删除、修改、汇总等等处理,目前我就觉得这些处理不方便啊,老有人说放开DataTable,用SQL,我做这些“内存”处理的时候怎么放开它们?换句话说,数据从存储介质读入内存后,就是为了进行加工,加工好了再写入存储介质。现在我的问题是加工不方便。我理解楼上几位是要我别加工。