以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]求一个ExecuteScalar的用法  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=9994)

--  作者:ddlzq
--  发布时间:2011/5/17 18:16:00
--  [求助]求一个ExecuteScalar的用法
各位老师:
我看帮助中,ExecuteScalar

用于执行返回单个值的命令,例如:

Dim
ld As Date
Dim
cmd As New SQLCommand
cmd.CommandText =
"Select Max(日期) From {订单} Where 产品 = \'PD01\'"

ld = cmd.ExecuteScalar()

上面的代码得到最后一次有人订购PD01的日期,并保存在变量ld中。


那么我怎么能在表中获得PD01有多少行,而且将指定的列值在某表中新增指定行数并将指定列填充到新增的行中呢?


--  作者:狐狸爸爸
--  发布时间:2011/5/17 18:22:00
--  

Dim ld As Integer
Dim cmd As New SQLCommand
cmd.CommandText = "Select Count(*) From {订单} Where 产品 = \'PD01\'"
ld = cmd.ExecuteScalar()


--  作者:ddlzq
--  发布时间:2011/5/17 18:46:00
--  
谢谢狐爸,得出了想要得到的指定筛选值的行计数,那狐爸,我新增了行,怎么样把这些部门的人员姓名与部门写到新增的汇总表里的 姓名列\\部门列呢?

Dim ld As Integer
Dim cmd As new SQLCommand
cmd.C
cmd.CommandText = "Select Count(*) From {员工信息库} Where 部门 = \'人力资源部\'"
ld = cmd.ExecuteScalar()
Tables("汇总表").AddNew(ld)

--  作者:狐狸爸爸
--  发布时间:2011/5/17 18:49:00
--  
没有看懂你的意思。

--  作者:ddlzq
--  发布时间:2011/5/17 18:53:00
--  
就是吧,有个汇总表, 汇总表里有姓名与部门列,取得到了员工信息库表里部门为 人力资源部的数据为10行,怎么样把这10行数据不是全部列引过来,只引用 员工信息库里的 姓名\\部门,填充到汇总表新增10行的 姓名与部门列中
--  作者:狐狸爸爸
--  发布时间:2011/5/17 19:05:00
--  

你这问题不具体啊,从已经加载的数据里头提起,还是从后台提取?

通常这种问题都是从已经加载的数据复制到别的表,但是你一楼的帖子使用的是SQL,似乎又是从后台提取、

 

 

从后台:
 
Dim dt As DataTable
Dim cmd As new SQLCommand
cmd.CommandText = "Select * From {员工信息库} Where 部门 = \'人力资源部\'"
dt = cmd.ExcuteReader
For Each dr1 As DataRow in dt.DataRows
      Dim dr2 As DAtaRow = DataTables(“汇总表").AddNew()
      dr2("姓名") = dr1("姓名")
      dr2("部门") = dr1("部门")
Next
 
从已经加载的数据提取,也就是员工信息库的所有行已经加载:
 
For Each dr1 As DataRow in DataTables(”员工信息库").Select("部门 = \'人力资源部\'")
     Dim dr2 As DAtaRow = DataTables(“汇总表").AddNew()
     dr2("姓名") = dr1("姓名")
     dr2("部门") = dr1("部门")
Next
[此贴子已经被作者于2011-5-17 19:06:01编辑过]

--  作者:ddlzq
--  发布时间:2011/5/18 8:45:00
--  
感谢狐爸,使用您的后台提取的代码是我想要的,学习了。 我想做的功能是跨表生单功能,用户在业务表中输入一个业务单号条务,确认后即可进行多行动态增行生单,解决了我的大问题了。感谢!强大!
--  作者:ddlzq
--  发布时间:2011/5/18 12:13:00
--  
狐爸,我使用了您的代码,非常好用,使用了一个窗体,然后用户在combobox输入一个单号,有一个按钮使用messagebox来提示是否生单到数据表中,如果是将生单,但问题又有了,如何能判断生的单在数据表里不重复呢?我在表里写了一个[单号]+[_identify]的合并值,确认生单时这列值不允许重复值,ID是从后台数据库表里取来的,但按按钮,依然可以继续生单到这个表中,限制重复值不好使.如何能解决不重复生单呢?
--  作者:blackzhu
--  发布时间:2011/5/18 12:17:00
--  
Dim cnt As Integer
Dim cmd As New SQLCommand
cmd.C
cmd.CommandText = "Select Count(*) From {表名} Where 条件"
cnt = cmd.ExecuteScalar()

if cnt > 0 then

    \'有了

end If

判断外部数据源有无新数据

--  作者:mr725
--  发布时间:2011/5/18 12:18:00
--  
以下是引用ddlzq在2011-5-18 12:13:00的发言:
狐爸,我使用了您的代码,非常好用,使用了一个窗体,然后用户在combobox输入一个单号,有一个按钮使用messagebox来提示是否生单到数据表中,如果是将生单,但问题又有了,如何能判断生的单在数据表里不重复呢?我在表里写了一个[单号]+[_identify]的合并值,确认生单时这列值不允许重复值,ID是从后台数据库表里取来的,但按按钮,依然可以继续生单到这个表中,限制重复值不好使.如何能解决不重复生单呢?

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