Foxtable(狐表)用户栏目专家坐堂 → SQLcommand里可以引用变量吗?


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

主题:SQLcommand里可以引用变量吗?

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


加好友 发短信
等级:小狐 帖子:352 积分:3237 威望:0 精华:0 注册:2012/3/7 10:28:00
SQLcommand里可以引用变量吗?  发帖心情 Post By:2013/4/26 16:32:00 [显示全部帖子]

Dim aa AS String = "01"

 

Dim sqlcmd As New SQLCommand
Dim dt As DataTable
sqlcmd.C
sqlcmd.commandtext = "Select * from {收入} Where 科目代码 = '01'"

dt=sqlcmd.ExecuteReader

 

怎样将上文中的 '01' 变为变量aa呢?


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


加好友 发短信
等级:小狐 帖子:352 积分:3237 威望:0 精华:0 注册:2012/3/7 10:28:00
  发帖心情 Post By:2013/4/26 16:36:00 [显示全部帖子]

我将 '01' --> '& aa &'

结果不行,不知道在sqlcmd.commandtext里能不能使用表达式?


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


加好友 发短信
等级:小狐 帖子:352 积分:3237 威望:0 精华:0 注册:2012/3/7 10:28:00
  发帖心情 Post By:2013/4/26 16:41:00 [显示全部帖子]

以下是引用Bin在2013-4-26 16:37:00的发言:
表达式不可以..  变量是肯定可以的..只不过你这样的拼接方式不对
 "Select * from {收入} Where 科目代码 ='" & aa & "'"

这样改完以后提示:FROM 子句语法错误。


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


加好友 发短信
等级:小狐 帖子:352 积分:3237 威望:0 精华:0 注册:2012/3/7 10:28:00
  发帖心情 Post By:2013/4/26 16:44:00 [显示全部帖子]

这个没有错,我是先用正常测试正确的代码,然后才又改成了代入变量

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


加好友 发短信
等级:小狐 帖子:352 积分:3237 威望:0 精华:0 注册:2012/3/7 10:28:00
  发帖心情 Post By:2013/4/26 16:48:00 [显示全部帖子]

看过了,没有拼错


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


加好友 发短信
等级:小狐 帖子:352 积分:3237 威望:0 精华:0 注册:2012/3/7 10:28:00
  发帖心情 Post By:2013/4/26 16:51:00 [显示全部帖子]

没有呀,原来的语句就对着来,另外我查询的不只是一列数据,其它的数据都对,就只有改变量的数据不正确

 


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


加好友 发短信
等级:小狐 帖子:352 积分:3237 威望:0 精华:0 注册:2012/3/7 10:28:00
  发帖心情 Post By:2013/4/26 16:58:00 [显示全部帖子]

Dim aa AS String = "01"

Dim sqlcmd As New SQLCommand
Dim dt As DataTable
sqlcmd.C
sqlcmd.commandtext = "Select d.科目代码 As 科目代码,d.科目名称 As 科目名称,本月发生额,本年累计 From(Select b.科目代码,b.科目名称,sum(a.乡镇税收) AS 本月发生额 From {乡镇税收} a Left JOIN {收入科目} b ON a.[科目代码] LIKE b.[科目代码]&'%' where 乡镇代码 = '& xz &' Group By b.科目代码,b.科目名称 Having sum(乡镇税收)<>0 Order By b.科目代码) c Right JOIN (Select b.科目代码,b.科目名称,sum(a.乡镇税收) As 本年累计 From {乡镇税收} a Left JOIN {收入科目} b ON a.[科目代码] Like b.[科目代码]&'%' where 乡镇代码 = '01' and 税款所属期 <= '2013-03' and 征收部门代码 = '01' Group By b.科目代码,b.科目名称 Having sum(乡镇税收)<>0 Order By b.科目代码) d ON c.科目代码 = d.科目代码"
dt=sqlcmd.ExecuteReader

Tables("分乡按科目查询_Table1").DataSource = dt

我查和两行数据,一行是本月发生的,一生是累计数,我只在本月数据这里用了变量,累计没用,累计的数据都是对的,只有本月的用上变量就不正确。


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


加好友 发短信
等级:小狐 帖子:352 积分:3237 威望:0 精华:0 注册:2012/3/7 10:28:00
  发帖心情 Post By:2013/4/26 17:02:00 [显示全部帖子]

这个你刚才一说,我就试过了,但是不行呀,不知道这里面是不是不让用变量呀

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


加好友 发短信
等级:小狐 帖子:352 积分:3237 威望:0 精华:0 注册:2012/3/7 10:28:00
  发帖心情 Post By:2013/4/26 17:05:00 [显示全部帖子]

以下是引用Bin在2013-4-26 16:59:00的发言:
我都和你说了.变量不是这么用的.你为什么不听..还说弹出的SQL正常 一样..
不可能一样的..
where 乡镇代码 = '" & xz & "' Group By

对不起呀,这个可以用,我把"和'符号敲反了


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


加好友 发短信
等级:小狐 帖子:352 积分:3237 威望:0 精华:0 注册:2012/3/7 10:28:00
  发帖心情 Post By:2013/4/26 18:03:00 [显示全部帖子]

以下是引用Bin在2013-4-26 17:04:00的发言:

我都说了三次了.你为什么就是不愿意听? 
可以使用变量.你出现错误是因为你拼接错误
 where 乡镇代码 = '" & xz & "' Group By
图片点击可在新窗口打开查看 我算是服了你了.


图片点击可在新窗口打开查看此主题相关图片如下:00.gif
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:01.gif
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:02.gif
图片点击可在新窗口打开查看
真的对不起了,请你吃、喝……,非常感谢

 回到顶部
总数 11 1 2 下一页