Foxtable(狐表)用户栏目专家坐堂 → [求助]求一个ExecuteScalar的用法


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

主题:[求助]求一个ExecuteScalar的用法

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


加好友 发短信
等级:一尾狐 帖子:418 积分:3209 威望:0 精华:0 注册:2010/2/24 13:33:00
  发帖心情 Post By:2011/5/18 12:30:00 [只看该作者]

以下是引用mr725在2011-5-18 12:18:00的发言:

贴出你的代码来看看呀。 。 。

Dim Result As DialogResult

Result = MessageBox.Show("您确认将此订单下达到技术订单跟踪表中吗?点击[是]确认下单,点击[否]取消下单", "订单提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)

If Result = DialogResult.Yes Then

 Dim cmd As New SQLCommand

    Dim dh As String = forms("国内合同表").Controls("ComboBox1").text

    Dim dt As DataTable

    cmd.C

    cmd.CommandText = "SELECT * From {国内合同表} Where [生产订单下达_生产订单号] = '" & dh & "'"

    dt = cmd.ExecuteReader

For Each dr1 As DataRow In dt.DataRows

Dim dr2 As DataRow = DataTables("J425技术订单跟踪").addnew()

    dr2("订单产品信息_合同编号") = dr1("生产订单下达_生产订单号")

    dr2("订单产品信息_项目序号") = dr1("_Identify")

    dr2("订单产品信息_产品名称") = dr1("合同内容_产品订购信息_产品名称")

    dr2("订单产品信息_规格型号") = dr1("合同内容_产品订购信息_产品型号")

    dr2("订单产品信息_单位") = dr1("客户名称")

    dr2("订单产品信息_数量") = dr1("合同内容_价格信息_数量")

    dr2("log_TOSN") = dr1("生产订单下达_生产订单号") & "|" & dr1("_Identify")

    dr1("TOSN") = dr1("生产订单下达_生产订单号") & "|" & dr1("_Identify")

Next

Else

    e.cancel = True

End If

''''''''我想出办法了,但没成功,就是反写一串单号与ID到合同表中,然后

 cmd.CommandText = "SELECT * From {国内合同表} Where [生产订单下达_生产订单号] = '" & dh & "'"

这句时加上一个and [TOSN] = nothing,但我用的反写是    dr1("TOSN") = dr1("生产订单下达_生产订单号") & "|" & dr1("_Identify")

肯定是不行了,MR725老师和狐爸能不能帮我想想办法,怎么将这串值反写回后台表对应的数据行呢?


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


加好友 发短信
等级:一尾狐 帖子:418 积分:3209 威望:0 精华:0 注册:2010/2/24 13:33:00
  发帖心情 Post By:2011/5/18 13:47:00 [只看该作者]

Mr725老师
狐爸,帮帮忙看看呗

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


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/5/18 15:20:00 [只看该作者]

我不明白你的意思,既然增加代码是:

 

For Each dr1 As DataRow In dt.DataRows
    Dim dr2 As DataRow = DataTables("J425技术订单跟踪").addnew()
    dr2("订单产品信息_合同编号") = dr1("生产订单下达_生产订单号")
    dr2("订单产品信息_项目序号") = dr1("_Identify")
    dr2("订单产品信息_产品名称") = dr1("合同内容_产品订购信息_产品名称")
    dr2("订单产品信息_规格型号") = dr1("合同内容_产品订购信息_产品型号")
    dr2("订单产品信息_单位") = dr1("客户名称")
    dr2("订单产品信息_数量") = dr1("合同内容_价格信息_数量")
    dr2("log_TOSN") = dr1("生产订单下达_生产订单号") & "|" & dr1("_Identify")
    dr1("TOSN") = dr1("生产订单下达_生产订单号") & "|" & dr1("_Identify")
Next

那还担心什么重复,你甚至可以每次增加行之前,都在目标表找一下有没有重复的,再决定是否增加都行。


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


加好友 发短信
等级:一尾狐 帖子:418 积分:3209 威望:0 精华:0 注册:2010/2/24 13:33:00
  发帖心情 Post By:2011/5/18 16:27:00 [只看该作者]

哦,狐爸,可能是我没表达清楚
我的意思是从后台表提取到数据后,自动新增行写到现在的表中,能不能回写到后台表中对应的数据行中的,好做标识哪些已经从后台提取过数据了,哪些是还未提取过的数据(由于后台表对应的业务单号可能还会陆续增加).这样回写到后台表中有标识的将不提取数据.
另外,提取时数据如何能判断将写入的数据表中是否存在单号+ID的数据?狐爸帮写段代码参考呗,谢谢了

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


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/5/18 16:30:00 [只看该作者]

我觉得从后台判断是否已经提取是不合适的,比较繁琐,处理不当还容易错漏。

不如反过来,正常提取,在目标表中增加行的时候,判断这行是否已经增加了,如果增加了,就算了。


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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2011/5/18 17:06:00 [只看该作者]

以下是引用ddlzq在2011-5-18 16:27:00的发言:
哦,狐爸,可能是我没表达清楚
我的意思是从后台表提取到数据后,自动新增行写到现在的表中,能不能回写到后台表中对应的数据行中的,好做标识哪些已经从后台提取过数据了,哪些是还未提取过的数据(由于后台表对应的业务单号可能还会陆续增加).这样回写到后台表中有标识的将不提取数据.
另外,提取时数据如何能判断将写入的数据表中是否存在单号+ID的数据?狐爸帮写段代码参考呗,谢谢了

1、按提取时同样的条件用update更新后台的标记列(做标记)

2、做了标记后,提取时的条件加个标记列=nothing,这样就不会重复提取了。


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


加好友 发短信
等级:一尾狐 帖子:418 积分:3209 威望:0 精华:0 注册:2010/2/24 13:33:00
  发帖心情 Post By:2011/5/18 17:50:00 [只看该作者]

谢谢狐爸,我现在实现回写成功了,正在试着加载时过滤条件,因为这个表使用时不加载数据的,还要在这个表的表台来判断是否存在引用过的数据.

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


加好友 发短信
等级:一尾狐 帖子:418 积分:3209 威望:0 精华:0 注册:2010/2/24 13:33:00
  发帖心情 Post By:2011/5/18 17:52:00 [只看该作者]

以下是引用mr725在2011-5-18 17:06:00的发言:

1、按提取时同样的条件用update更新后台的标记列(做标记)

2、做了标记后,提取时的条件加个标记列=nothing,这样就不会重复提取了。


我把代码贴上来,请mr725老师和狐爸帮看看,为何运行出错了

Dim Result As DialogResult

Result = MessageBox.Show("您确认将此订单下达到技术订单跟踪表中吗?点击[是]确认下单,点击[否]取消下单", "订单提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question)

If Result = DialogResult.Yes Then

 Dim cmd As New SQLCommand

    Dim dh As String = forms("国内合同表").Controls("ComboBox1").text

    Dim dt As DataTable

    cmd.C

    cmd.CommandText = "SELECT * From {国内合同表} Where [生产订单下达_生产订单号] = '" & dh & "' And [TOSN] = Nothing "

    dt = cmd.ExecuteReader

For Each dr1 As DataRow In dt.DataRows

Dim dr2 As DataRow = DataTables("J425技术订单跟踪").addnew()

    dr2("订单产品信息_合同编号") = dr1("生产订单下达_生产订单号")

    dr2("订单产品信息_项目序号") = dr1("_Identify")

    dr2("订单产品信息_产品名称") = dr1("合同内容_产品订购信息_产品名称")

    dr2("订单产品信息_规格型号") = dr1("合同内容_产品订购信息_产品型号")

    dr2("订单产品信息_单位") = dr1("客户名称")

    dr2("订单产品信息_数量") = dr1("合同内容_价格信息_数量")

    dr2("log_TOSN") = dr1("生产订单下达_生产订单号") & "|" & dr1("_Identify")

    cmd.CommandText = "UPDATE {国内合同表} SET TOSN = 1 where 生产订单下达_生产订单号 ='" & dh & "'"

    cmd.ExecuteNonQuery() 


Next

Else

    e.cancel = True

End If


加了这个and 后 执行出错,不加很正常

    cmd.CommandText = "SELECT * From {国内合同表} Where [生产订单下达_生产订单号] = '" & dh & "' And [TOSN] = Nothing "

[此贴子已经被作者于2011-5-18 17:53:06编辑过]

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2011/5/18 18:10:00 [只看该作者]

And [TOSN] is null

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


加好友 发短信
等级:一尾狐 帖子:418 积分:3209 威望:0 精华:0 注册:2010/2/24 13:33:00
  发帖心情 Post By:2011/5/18 20:31:00 [只看该作者]

感谢MR725老师师我试试看看

 回到顶部
总数 20 上一页 1 2