Foxtable(狐表)用户栏目专家坐堂 → 有没有方法不用遍历得出所有新增行和修改行的集合?


  共有2746人关注过本帖树形打印复制链接

主题:有没有方法不用遍历得出所有新增行和修改行的集合?

帅哥哟,离线,有人找我吗?
hdffzxf
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:393 积分:3723 威望:0 精华:0 注册:2013/10/9 23:09:00
有没有方法不用遍历得出所有新增行和修改行的集合?  发帖心情 Post By:2015/12/27 4:55:00 [只看该作者]

如标题,datatable().select()  可以得到所有新增行和修改行吗?或者其他变通的方法,用 数据量过大,遍历效率稍有些低!

 回到顶部
帅哥哟,离线,有人找我吗?
唐尸三摆手
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:928 积分:7769 威望:0 精华:13 注册:2008/9/1 11:58:00
  发帖心情 Post By: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)

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/12/27 12:09:00 [只看该作者]

mark

 回到顶部
帅哥哟,离线,有人找我吗?
yinyb36
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:953 积分:7252 威望:0 精华:0 注册:2011/9/6 13:36:00
  发帖心情 Post By:2015/12/27 22:03:00 [只看该作者]

收藏

 回到顶部
帅哥哟,离线,有人找我吗?
hdffzxf
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:393 积分:3723 威望:0 精华:0 注册:2013/10/9 23:09:00
  发帖心情 Post By:2015/12/31 0:19:00 [只看该作者]

我是想得到这些行,并用sql语句(sql保存语句已现成)向后台保存这些行的数据,这个t1我怎么操作它?遍历操作效率稍微有些低!
[此贴子已经被作者于2015/12/31 0:20:57编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
逛逛
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:1693 积分:12123 威望:0 精华:7 注册:2013/7/11 10:52:00
  发帖心情 Post By:2015/12/31 8:30:00 [只看该作者]


 回到顶部
帅哥哟,离线,有人找我吗?
Hyphen
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:5015 积分:25363 威望:0 精华:0 注册:2015/8/18 9:21:00
  发帖心情 Post By: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
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:393 积分:3723 威望:0 精华:0 注册:2013/10/9 23:09:00
  发帖心情 Post By:2015/12/31 13:41:00 [只看该作者]

谢谢大家回复,关于save的效率和sql的保存效率不是差了一点儿半点儿,目前用sql保存已经相当的快,是通过遍历各行得出需要更新的行,再合成sql语句实现的保存,我是想再提高一下保存效率,不通过遍历,直接得出新增行和修改行的行集合(就是datarows),然后再用sql保存。2楼的方法得出的t1、t2和t3这个System.Data.DataTable对象类型不是datatable也不是table,我不太懂这个怎么用。

 回到顶部
帅哥哟,离线,有人找我吗?
hdffzxf
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:393 积分:3723 威望:0 精华:0 注册:2013/10/9 23:09:00
  发帖心情 Post By:2015/12/31 13:48:00 [只看该作者]

 For Each dr As System.Data.DataRow In ChangeTable.Rows
是这句?

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/12/31 14:31:00 [只看该作者]


 回到顶部
总数 11 1 2 下一页