以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  有没有方法不用遍历得出所有新增行和修改行的集合?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=79223)

--  作者:hdffzxf
--  发布时间:2015/12/27 4:55:00
--  有没有方法不用遍历得出所有新增行和修改行的集合?
如标题,datatable().select()  可以得到所有新增行和修改行吗?或者其他变通的方法,用 数据量过大,遍历效率稍有些低!
--  作者:唐尸三摆手
--  发布时间:2015/12/27 9:09:00
--  
\'使用System.Data.DataTable的GetChanges方法获取各种状态行,返回一个System.Data.DataTable对象

\'根据DataTable获取一个System.Data.DataTable类型变量
Dim t As System.Data.DataTable = CurrentTable.DataTable.BaseTable
\'获取新增行数
Dim t1 As System.Data.DataTable = t.GetChanges(System.Data.DataRowState.Added )   \'新增行
If t1 IsNot Nothing Then Output.Show("新增" & t1.Rows.Count)
\'获取修改行数
Dim t2 As System.Data.DataTable = t.GetChanges(System.Data.DataRowState.Modified )   \'修改行
If t2 IsNot Nothing Then Output.Show("修改" & t2.Rows.Count)
\'获取已删除行数
Dim t3 As System.Data.DataTable = t.GetChanges(System.Data.DataRowState.Deleted )   \'已删除行
If t3 IsNot Nothing Then Output.Show("删除" & t3.Rows.Count)

--  作者:大红袍
--  发布时间:2015/12/27 12:09:00
--  
mark
--  作者:yinyb36
--  发布时间:2015/12/27 22:03:00
--  
收藏
--  作者:hdffzxf
--  发布时间:2015/12/31 0:19:00
--  
我是想得到这些行,并用sql语句(sql保存语句已现成)向后台保存这些行的数据,这个t1我怎么操作它?遍历操作效率稍微有些低!
[此贴子已经被作者于2015/12/31 0:20:57编辑过]

--  作者:逛逛
--  发布时间:2015/12/31 8:30:00
--  
http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=53006&replyID=&skin=1



--  作者:Hyphen
--  发布时间:2015/12/31 8:38:00
--  
参考https://www.baidu.com/baidu?word=DataAdapter&ie=utf-8&tn=myie2dg&ch=6

其实就用DataTables("表A").Save好了,DataTables("表A").Save的实现方式应该是用DataAdapter的,对于插入,更新和删除一整套逻辑都已经封装好,一般情况下没必要再自己实现。



--  作者:hdffzxf
--  发布时间:2015/12/31 13:41:00
--  
谢谢大家回复,关于save的效率和sql的保存效率不是差了一点儿半点儿,目前用sql保存已经相当的快,是通过遍历各行得出需要更新的行,再合成sql语句实现的保存,我是想再提高一下保存效率,不通过遍历,直接得出新增行和修改行的行集合(就是datarows),然后再用sql保存。2楼的方法得出的t1、t2和t3这个System.Data.DataTable对象类型不是datatable也不是table,我不太懂这个怎么用。
--  作者:hdffzxf
--  发布时间:2015/12/31 13:48:00
--  
 For Each dr As System.Data.DataRow In ChangeTable.Rows
是这句?

--  作者:大红袍
--  发布时间:2015/12/31 14:31:00
--  

这样用,看帮助教程

 

https://msdn.microsoft.com/zh-cn/library/system.data.datatable_members%28v=vs.80%29.aspx

 

https://msdn.microsoft.com/zh-cn/library/system.data.datarow_members%28v=vs.80%29.aspx