当前位置:编程学习 > C#/ASP.NET >>

刚学C#,怎么感觉对数据的处理很弱智?

比如说对Datatable有条件的批量修改某列数据
VFP可以Replace ... for,
C#只能循环判断,逐项修改,1万条记录怎么办?
有没有快捷点的办法? --------------------编程问答-------------------- c#也可以用SQL语句成批修改嘛。 --------------------编程问答-------------------- dataset linq --------------------编程问答-------------------- 那你为什么不用sql批量更新,非得跟datatable较劲呢 --------------------编程问答-------------------- 刚学C#的话,弱智的肯定是你,而不是C#.net --------------------编程问答-------------------- --------------------编程问答-------------------- 各位大神,请问一下,,,replace for  通过神马 实现批量更新?  那么C# 也这么做呗 --------------------编程问答-------------------- sql支持批量更新。

update sometable set field = field + 1 where name = xxx --------------------编程问答-------------------- 这个。。。。纯粹是领取十分可用分来的 --------------------编程问答-------------------- 大侠们帮看看,最底下一个循环,想不用循环实现:

            //删除没有设置字段名的列
            for (int i = 0; i < xlshead.Rows.Count; i++)
            {
                if (xlshead.Rows[i]["fld"].ToString() == string.Empty)
                    xlsdt.Columns.Remove(xlshead.Rows[i]["head"].ToString());
                //删除不符合非空要求的记录
                //xlsdt= from xlsdt where 
                //delete xlshead set field = field + 1 where name = xxx

                if (xlshead.Rows[i]["nonull"].ToString().ToLower()=="true")
                {

                    //string fld=xlshead.Rows[i]["fld"].ToString();
                    //DataRow[] rows = xlsdt.Select(fld+" is not null");
                    //xlsdt.Clear();

                    //以下一定要用循环码?想用上面3+...代替,但我写不下去了,仍然需要遍历rows
                    for (int j = xlsdt.Rows.Count - 1; j >= 0; j--)
                    {
                        if (xlsdt.Rows[j].IsNull(i))
                        {
                            xlsdt.Rows.RemoveAt(j);
                        }
                    }
                }
--------------------编程问答-------------------- 权限好低哦,发帖不能编辑修改
            for (int i = 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")
                {

                    //string fld=xlshead.Rows[i]["fld"].ToString();
                    //DataRow[] rows = xlsdt.Select(fld+" is not null");
                    //xlsdt.Clear();

                    //以下一定要用循环码?想用上面3行+...代替,但我写不下去了,仍然需要遍历rows
                    for (int j = 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,我做这些“内存”处理的时候怎么放开它们?

换句话说,数据从存储介质读入内存后,就是为了进行加工,加工好了再写入存储介质。现在我的问题是加工不方便。我理解楼上几位是要我别加工。
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,