以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  再次从临时表中查询数据时怎么样引用表名?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=37580)

--  作者:scott518
--  发布时间:2013/7/5 16:36:00
--  再次从临时表中查询数据时怎么样引用表名?
请教一下,用sqlcommand类查询得到了一个临时表dt,如下

 cmd.CommandText = "SELECT [_identify],产品编码,品名,规格,颜色 From {产品编码}"
 dt = cmd.ExecuteReader()

再想从这个得到的临时表中查询数据要怎么样引用dt这个临时表的名称?
 cmd1.CommandText = "SELECT Distinct 产品编码,品名 From {“ & dt & "}”
  Dim dt2 As DataTable = cmd1.ExecuteReader()


上面红色的部份定成 {dt} 、{" & dt.name & "} 等均出错。

谢谢!

--  作者:Bin
--  发布时间:2013/7/5 16:42:00
--  
使用变量实现吧 
cmd.CommandText = "SELECT [_identify],产品编码,品名,规格,颜色 From {产品编码}"
 dt = cmd.ExecuteReader()
dim dtName as string = "产品编码"  \'如果是其他地方使用可以使用全局变量

cmd1.CommandText = "SELECT Distinct 产品编码,品名 From {“ & dtName & "}”
  Dim dt2 As DataTable = cmd1.ExecuteReader()



--  作者:blackzhu
--  发布时间:2013/7/5 17:00:00
--  
这个貌似不行吧,我试过的 好像不行.
--  作者:Bin
--  发布时间:2013/7/5 17:01:00
--  
用变量怎么会不行呢,自己存的变量.没道理呀.
--  作者:scott518
--  发布时间:2013/7/5 17:22:00
--  
谢谢二位,这样是可以了,但因为表名都是”产品编码“ ,会不会第二个临时表也从第一个产品编码取数啊,因为我的本意是要从第一个得到的临时表中取数。上述例子中看似两个表差不多,但是有时会差别很大的。
--  作者:blackzhu
--  发布时间:2013/7/6 9:07:00
--  
直接在dt里面取数不行吗?
--  作者:scott518
--  发布时间:2013/7/6 9:23:00
--  
就是想直接再从第一个查询到的dt里取数,但代码后面“from {}”这里不知如何引用dt这个表的表名,如果用dt.name则显示没有为“”的表名;一楼试了几种其他的方式都不行;
如果用二楼的方法测试过了,等于是从第一个原表中取数。不是我要的效果,我要的是比如原表中有记录100条,第一次查询得到一个dt可能增设了条件查询结果就只有60条记录了,然后第二次再从这个60条记录的查询表中再查询。