以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 小技巧,重置_SortKey列的方法 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=29313) |
-- 作者:狐狸爸爸 -- 发布时间:2013/3/4 14:43:00 -- 小技巧,重置_SortKey列的方法 我们知道,通过常规的代码, 我们是没有办法修改_Identify、_SortKey等系统列的内容。
Dim drs As List(of
DataRow) = DataTables("表A").Select("","[_SortKey]")
执行上述代码后,插入行的功能即可恢复正常。
提示:
DataRow有一个BaseRow属性,返回底层的System.Data.Row对象。 [此贴子已经被作者于2013-3-4 14:45:39编辑过]
|
-- 作者:唐尸三摆手 -- 发布时间:2013/3/4 15:01:00 -- For i As Integer = 0 To drs.Count - 1
昨天我没调用baserow属性,直接上述代码修改的,不过没发现异常,不知这样做有没有弊端? |
-- 作者:狐狸爸爸 -- 发布时间:2013/3/4 15:02:00 -- 你这样修改不了,值并不会改变,你可以测试一下 |
-- 作者:唐尸三摆手 -- 发布时间:2013/3/4 15:15:00 -- 的确是没变化,呵呵,还以为没报错就是OK了 |
-- 作者:FoxMan -- 发布时间:2013/3/4 15:21:00 -- 以下是引用狐狸爸爸在2013-3-4 14:43:00的发言:
我们知道,通过常规的代码, 我们是没有办法修改_Identify、_SortKey等系统列的内容。
Dim drs As List(of
DataRow) = DataTables("表A").Select("","[_SortKey]")
执行上述代码后,插入行的功能即可恢复正常。
提示:
DataRow有一个BaseRow属性,返回底层的System.Data.Row对象。 [此贴子已经被作者于2013-3-4 14:45:39编辑过] 何不无法正常插入行時,讓程序自動處理! |
-- 作者:surgeme -- 发布时间:2014/7/13 1:06:00 -- 我一直都在找怎么把排序结果保存下来的办法,但试过你们写的这个代码,发现根本就重置不了"_sortkey"! 最终发现要像下面这样才行,你们对比一下别人写的有什么差别吧! Dim cnt As Integer For Each dr As DataRow In DataTables("表A").Select("","_SortKey") dr.BaseRow("_SortKey") = cnt cnt = cnt + 1 Next 找得好辛苦啊,终于遇上一个能用的了!
|
-- 作者:L88919138 -- 发布时间:2014/7/13 5:34:00 -- |
-- 作者:lsy -- 发布时间:2014/7/13 15:40:00 -- 以下是引用surgeme在2014-7-13 1:06:00的发言:
我一直都在找怎么把排序结果保存下来的办法,但试过你们写的这个代码,发现根本就重置不了"_sortkey"! 最终发现要像下面这样才行,你们对比一下别人写的有什么差别吧!
Dim cnt As Integer
For Each dr As DataRow In DataTables("表A").Select("","_SortKey") dr.BaseRow("_SortKey") = cnt cnt = cnt + 1 Next 找得好辛苦啊,终于遇上一个能用的了! 好,有心人。 |
-- 作者:程兴刚 -- 发布时间:2014/7/13 21:16:00 -- 一楼的办法为什么不可以? |
-- 作者:L88919138 -- 发布时间:2014/7/21 20:39:00 -- 这个是写在DataColChanged表事件下吗? |