以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- AppendLoad报错 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=21212) |
-- 作者:飞 -- 发布时间:2012/7/5 14:58:00 -- AppendLoad报错 今天在一个表中使用AppendLoad报错,提示框如下(使用Load时候正常)
[此贴子已经被作者于2012-7-5 14:57:58编辑过]
|
-- 作者:程兴刚 -- 发布时间:2012/7/5 15:06:00 -- 把AppendLoad整段代码贴出来看看! |
-- 作者:飞 -- 发布时间:2012/7/5 15:24:00 -- Dim Dt1 As Date = DataTables(e.Form.Name & "_Tbl_Main").Compute("Max(时间)") Dim Filter As String = "时间 > \'" & Dt1 & "\'" |
-- 作者:程兴刚 -- 发布时间:2012/7/5 15:45:00 -- 这样试一试:
Dim Dt1 As Date = DataTables(e.Form.Name & "_Tbl_Main").Compute("Max(时间)") Dim Filter As String = "[时间] > \'" & Dt1 & "\'" |
-- 作者:程兴刚 -- 发布时间:2012/7/5 15:52:00 -- 或者这样:
Dim Dt1 As Date = DataTables(e.Form.Name & "_Tbl_Main").Compute("Max(时间)") Dim Filter As String = "[时间] > \'" & Dt1 & "\'" if drs.Count > 0 Messagebox.Show("数据已经存在于表中,不能追加!") else DataTables(e.Form.Name & "_Tbl_Main").AppendLoad(Filter ,False) end if |
-- 作者:狐狸爸爸 -- 发布时间:2012/7/5 15:58:00 -- 必须把握一条原则: 新追载的数据在不存在于已经加载的数据中,才能追载。 |
-- 作者:程兴刚 -- 发布时间:2012/7/5 16:00:00 -- 哈哈,我好不容易抢一次先! |
-- 作者:程兴刚 -- 发布时间:2012/7/5 16:19:00 -- 不过,建议贺老师改进,AppendLoad中自动判断这些符合条件的行是否已经存在于datatable中(存在不追载,均不存在则加载,部分存在,则忽略追载已经存在的行)!
由此可见,5楼的代码还不严谨,最好是先移除符合条件的行再追载,这样避免只存在部分行而不能追载的情况! [此贴子已经被作者于2012-7-5 16:19:30编辑过]
|
-- 作者:狐狸爸爸 -- 发布时间:2012/7/6 8:00:00 -- 这样不是不可以,但是效率比较差,所以还是自己编程的时候,做得严谨一点比较好。 |
-- 作者:飞 -- 发布时间:2012/7/6 9:23:00 -- 找到原因了,原本是SQLQuery型Table不能使用AppendLoad,改成SQLTable就正常了 |