以文本方式查看主题 - Foxtable(狐表) (http://www.foxtable.com/bbs/index.asp) -- 专家坐堂 (http://www.foxtable.com/bbs/list.asp?boardid=2) ---- ExecuteReader有没有返回结果的参数? (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=109715) |
-- 作者:huangxueyao -- 发布时间:2017/11/17 17:24:00 -- ExecuteReader有没有返回结果的参数? Dim cmd As New SQLCommand Dim dt As DataTable cmd.C cmd.CommandText = "SEL ECT * From {订单表} WHERE 客户编码 = \'" & dr9("客户编码") & "\' and 订单状态 = \'仓库已出货\'" dt = cmd.ExecuteReader(True) \'只有设置了true才可以保存数据 类似以上代码,实际运作过程中发现ExecuteReader会出现失败的情况,请问如何进行代码判断?
|
-- 作者:有点甜 -- 发布时间:2017/11/17 17:29:00 -- 失败报什么错?是不是你客户编码的条件有问题导致的?如果是单引号问题,就处理一下 dr9("客户编码").replace("\'", "\'\'")
判断是否出错,试试try catch http://www.foxtable.com/webhelp/scr/2933.htm
|
-- 作者:huangxueyao -- 发布时间:2017/11/17 19:28:00 -- 我用这个代码来更新另外一个数据源的,出错的情况就是本地数据源显示上传成功了,但是服务器数据源则没有。 所以我想做一个判断。
[此贴子已经被作者于2017/11/17 19:28:40编辑过]
|
-- 作者:有点蓝 -- 发布时间:2017/11/17 20:11:00 -- 如何做更新的?ExecuteReader是取数据的和更新有啥关系? |
-- 作者:huangxueyao -- 发布时间:2017/11/18 14:13:00 -- Dim dr9 As DataRow = drs(0) Dim cmd As New SQLCommand Dim dt As DataTable cmd.C cmd.CommandText = "SEL ECT * From {订单表} WHERE 客户编码 = \'" & dr9("客户编码") & "\' and 订单状态 = \'仓库已出货\'" dt = cmd.ExecuteReader(True) \'只有设置了true才可以保存数据 \'删除当前订单 dt.DeleteFor("") For Each dr As DataRow In drs Dim nr As DataRow = dt.AddNew() For Each dc As DataCol In DataTables("订单表").DataCols nr(dc.name) = dr(dc.name) Next nr("订单状态") = "门店已回单" nr("同步状态") = "已同步" Next For Each dr1 As DataRow In drs dr1("订单状态") = "门店已回单" dr1("同步状态") = "已同步" Next dt.save DataTables("订单表").save forms("独-正在更新").close MessageBox.show("提交完成") 以上代码就是用来向数据源fwq-pmc上传本地数据用的。
[此贴子已经被作者于2017/11/18 14:16:28编辑过]
|
-- 作者:有点蓝 -- 发布时间:2017/11/18 15:55:00 -- dt = cmd.ExecuteReader(True) \'只有设置了true才可以保存数据 msgbox(dt.datarows.count) \'删除当前订单 dt.DeleteFor("") msgbox(dt.datarows.count) For Each dr As DataRow In drs Dim nr As DataRow = dt.AddNew() For Each dc As DataCol In DataTables("订单表").DataCols nr(dc.name) = dr(dc.name) Next nr("订单状态") = "门店已回单" nr("同步状态") = "已同步" Next For Each dr1 As DataRow In drs dr1("订单状态") = "门店已回单" dr1("同步状态") = "已同步" Next msgbox(dt.datarows.count) dt.save 看3个msgbox分别弹出什么内容 |
-- 作者:huangxueyao -- 发布时间:2017/11/20 9:37:00 -- 现在的情况是,我已经做了这个软件而且已经给到十多个终端正在使用了,一部分终端能够正常用,一部分就出错。 出错的情况是:终端不会显示异常,代码还是能够走完,就像正常上传数据了一样,但是在后台看数据的话,就会发现他们的数据实际上是没有上传到后台的。 所以我想要知道的是,在这个上传过程中,有没有什么参数或者方法可以判断上传状态,这样我就可以做另外处理。
|
-- 作者:有点甜 -- 发布时间:2017/11/20 10:16:00 -- 没看懂你5楼代码的意图。
1、查找到数据后,为什么又要删除? dt.DeleteFor("") ?
2、查询的订单表和datatable的订单表,是不是同一个表?
3、尽量这样做,生成一个外部表处理,这样看到处理的效果 http://www.foxtable.com/webhelp/scr/1279.htm
|
-- 作者:huangxueyao -- 发布时间:2017/11/20 11:21:00 -- 我们有两个数据源,一个是门店的本地数据源A,第二个是后台的数据源B。 订单在两个数据源都会有人操作的。 因为门店这边默认的数据源是本地数据源A,所以需要去把B的数据同步下来,或者把变动同步到B上面去。 下面代码的意思就是首先是去查询B数据源上的订单信息,然后删除掉,然后再把本地数据源A的订单信息通过addnew的方式同步上去。 Dim dr9 As DataRow = drs(0) Dim cmd As New SQLCommand Dim dt As DataTable cmd.Conn ecti onN ame= “fwq-pmc” cmd.CommandText = "SEL ECT * From {订单表} WHERE 客户编码 = \'" & dr9("客户编码") & "\' and 订单状态 = \'仓库已出货\'" dt = cmd.ExecuteReader(True) \'只有设置了true才可以保存数据 \'删除当前订单 dt.DeleteFor("") For Each dr As DataRow In drs Dim nr As DataRow = dt.AddNew() For Each dc As DataCol In DataTables("订单表").DataCols nr(dc.name) = dr(dc.name) Next nr("订单状态") = "门店已回单" nr("同步状态") = "已同步" Next For Each dr1 As DataRow In drs dr1("订单状态") = "门店已回单" dr1("同步状态") = "已同步" Next dt.save DataTables("订单表").save forms("独-正在更新").close MessageBox.show("提交完成") |
-- 作者:有点甜 -- 发布时间:2017/11/20 12:23:00 -- 每次执行这个代码,都无法正常,还是说偶尔不能正常?
改成这种方式看看效果 http://www.foxtable.com/webhelp/scr/1279.htm
|