上面不用参数时不出错,但是用参数时,就提示错误 “必须声明表变量”

问题描述

PublicFunctionExecSelect(ByValcmdTextAsString,ByValcmdTypeAsCommandType,ByValparasAsSqlParameter())AsDataTableDimsqlAdapterAsSqlDataAdapterDimdtAsNewDataTableDimdsAsNewDataSet'还是给cmd赋值cmd.CommandText=cmdTextcmd.CommandText="SELECTCount(对方账号)AS次数from@zhanghao"'cmd.CommandText="SELECTCount(对方账号)AS次数fromZD6217232605000074641"'上面不用参数时不出错,但是用参数时,就提示错误“必须声明表变量”DimspAsNewSqlParameter("@zhanghao","ZD6217232605000074641")cmd.CommandType=cmdTypecmd.Connection=conncmd.Parameters.Add(sp)sqlAdapter=NewSqlDataAdapter(cmd)'实例化adapterTrysqlAdapter.Fill(ds)'用adapter将dataSet填充dt=ds.Tables(0)'datatable为dataSet的第一个表cmd.Parameters.Clear()'清除参数CatchexAsException'MsgBox("查询失败",CType(vbOKOnly+MsgBoxStyle.Exclamation,MsgBoxStyle),"警告")MessageBox.Show(ex.Message,"请注意",MessageBoxButtons.OK,MessageBoxIcon.Stop)Finally'最后一定要销毁cmdCallCloseCmd(cmd)EndTryReturndtEndFunction

解决方案

解决方案二:
你cmd实例化了吗?
解决方案三:
引用楼主zuoguangxin01的回复:

PublicFunctionExecSelect(ByValcmdTextAsString,ByValcmdTypeAsCommandType,ByValparasAsSqlParameter())AsDataTableDimsqlAdapterAsSqlDataAdapterDimdtAsNewDataTableDimdsAsNewDataSet'还是给cmd赋值cmd.CommandText=cmdTextcmd.CommandText="SELECTCount(对方账号)AS次数from@zhanghao"'cmd.CommandText="SELECTCount(对方账号)AS次数fromZD6217232605000074641"'上面不用参数时不出错,但是用参数时,就提示错误“必须声明表变量”DimspAsNewSqlParameter("@zhanghao","ZD6217232605000074641")cmd.CommandType=cmdTypecmd.Connection=conncmd.Parameters.Add(sp)sqlAdapter=NewSqlDataAdapter(cmd)'实例化adapterTrysqlAdapter.Fill(ds)'用adapter将dataSet填充dt=ds.Tables(0)'datatable为dataSet的第一个表cmd.Parameters.Clear()'清除参数CatchexAsException'MsgBox("查询失败",CType(vbOKOnly+MsgBoxStyle.Exclamation,MsgBoxStyle),"警告")MessageBox.Show(ex.Message,"请注意",MessageBoxButtons.OK,MessageBoxIcon.Stop)Finally'最后一定要销毁cmdCallCloseCmd(cmd)EndTryReturndtEndFunction

这是SQL报错@zhanghao这个变量没有声明.如果声明变量的语句在cmdText中的话那么你cmd.CommandText="SELECTCount(对方账号)AS次数from@zhanghao"这一句应该写成cmd.CommandText="SELECTCount(对方账号)AS次数from@zhanghao"另外两句SQL之间应该用";"来分开
解决方案四:
引用2楼lovesan的回复:

这是SQL报错@zhanghao这个变量没有声明.如果声明变量的语句在cmdText中的话那么你cmd.CommandText="SELECTCount(对方账号)AS次数from@zhanghao"这一句应该写成cmd.CommandText="SELECTCount(对方账号)AS次数from@zhanghao"另外两句SQL之间应该用";"来分开

上面错了应该是写成cmd.CommandText+="SELECTCount(对方账号)AS次数from@zhanghao"
解决方案五:
SQL中只有值才能用变量;表名、字段名是不能用变量的,必须直接拼到SQL语句中。标准就是这样!
解决方案六:
你要查询的是表名啊,表名不能用变量代替,必须直接写。

时间: 2024-12-21 13:55:21

上面不用参数时不出错,但是用参数时,就提示错误 “必须声明表变量”的相关文章

visual studio-vs2013加载opencv时总是出错,求大神给看看“CvSVM”: 未声明的标识符

问题描述 vs2013加载opencv时总是出错,求大神给看看"CvSVM": 未声明的标识符 "CvSVM": 未声明的标识符 解决方案 CvSVM的头文件是ml.h,你要确认你包含了这个文件,你也可以再OpenCV里找到这个文件 解决方案二: http://blog.csdn.net/fall221/article/details/7938812 解决方案三: 你的include目录配置正确了么?我估计是目录没有配置好,所以找不到 解决方案四: 那我看可能?那就

visual studio-Vs2010+vtk 用cmake时编译出错

问题描述 Vs2010+vtk 用cmake时编译出错 用cmake编译时出现: HDF5: SOVERSION: 8.0.2 HDF5: Performing Other Test STDC_HEADERS - Success HDF5: Performing CXX Test OLD_HEADER_FILENAME - Failed HDF5: Performing CXX Test H5_NO_NAMESPACE - Failed HDF5: Performing CXX Test H5_

在vs2010中用c++写代码时将textbox的文本转换为double类型时总是出错

问题描述 在vs2010中用c++写代码时将textbox的文本转换为double类型时总是出错 double du = double.Parse(textBox5->Text); double dlje = double.valueOf(textBox4->Text); double dljn = atof(textBox3->Text); 错误: 错误 2 error C2062: 意外的类型"double" 错误 5 error C2062: 意外的类型&quo

graphics作图-VB2010作图时graphics出错

问题描述 VB2010作图时graphics出错 在VB2010中,这段代码中的Dim g2 As graphics ...为什么出错了? Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 'Timer1.Enabled = False Button1.Text = "hello" PictureBox1.Image =

求助:FreeTetBox添加中文字体时,出错!

问题描述 求助:FreeTetBox添加中文字体时,出错!我在网上找的代码:Toolbartoolbar1=FreeTextBox1.Toolbars[0];//此处的0表示第一个toolbar.FontFacesMenufontmenu=(FontFacesMenu)toolbar1.Items[1];//freetextbox中加载字体的类为FontFacesMenu,这是FontFacesMenu在toolar中的索引.InstalledFontCollectioninstalledFon

eb ervice-C# WebService在接收到带参数的接口调用时自动将加密的参数解密

问题描述 C# WebService在接收到带参数的接口调用时自动将加密的参数解密 我的WebService的所有接口调用的参数都是加密过的,而且有接口函数.我在想有没有什么办法,在WebService接收到接口调用请求时,自动将参数解密,而不需要我每个函数内写解密?????? 我暂时没有C币了,有一定奉上 解决方案 我在Spring里面是使用filter过滤器机制来做的!所有的请求都先通过filter,在filter里面做统一的处理,然后再分发到各个具体的controller去.我觉得这种思路

PHP运行时强制显示出错信息,输出到文本

  PHP运行时强制显示出错信息,将出错信息输出到一个文本文件 error_reporting(E_ALL); ini_set('display_errors', '1'); //将出错信息输出到一个文本文件 ini_set('error_log', dirname(__FILE__) . '/error_log.txt');

java多线程 参数已经传入构造方法 进入run方法时参数却被改变

问题描述 java多线程 参数已经传入构造方法 进入run方法时参数却被改变 请教各位大神:我在for循环里面执行线程,遇到一个问题,代码如下:private static final ExecutorService executors = Executors.newScheduledThreadPool(10);......for(...){executors.execute(new PublishThread(map));}PublishThread实现了Runnable方法,它有一个私有成

请问,在eclipse中运用glassfish服务器,测试时显示出错没如图,怎么修改?

问题描述 请问,在eclipse中运用glassfish服务器,测试时显示出错没如图,怎么修改? 在eclipse中运用glassfish服务器,测试时明明用的是glassfish3.1,但是却显示出错没有找到glassfish3.1.1,怎么修改?谢谢各位啦!