请教关于调用存储过程的问题

问题描述

我调用了一个有参数的存储过程,代码如下Comd.CommandText="ProPageSet1"Dimparam1AsNewSqlParameter("@tb",SqlDbType.VarChar,50)param1.Direction=ParameterDirection.Inputparam1.Value="dhz"Comd.Parameters.Add(param1)Dimparam2AsNewSqlParameter("@col",SqlDbType.VarChar,50)param2.Direction=ParameterDirection.Inputparam2.Value="id"Comd.Parameters.Add(param2)Dimparam3AsNewSqlParameter("@colorder",SqlDbType.VarChar,50)param3.Direction=ParameterDirection.Inputparam3.Value="id"Comd.Parameters.Add(param3)Dimparam4AsNewSqlParameter("@collist",SqlDbType.VarChar,800)param4.Direction=ParameterDirection.Inputparam4.Value="id,s_dbrm,cast(DecryptByCert(257,s_dz)asvarchar(120)),test"Comd.Parameters.Add(param4)Dimparam5AsNewSqlParameter("@pagesize",SqlDbType.Int)param5.Direction=ParameterDirection.Inputparam5.Value=15Comd.Parameters.Add(param5)Dimparam6AsNewSqlParameter("@page",SqlDbType.Int)param6.Direction=ParameterDirection.Inputparam6.Value=1Comd.Parameters.Add(param6)Dimparam7AsNewSqlParameter("@condition",SqlDbType.VarChar,800)param7.Direction=ParameterDirection.Inputparam7.Value="id>0"Comd.Parameters.Add(param7)Dimparam8AsNewSqlParameter("@pages",SqlDbType.Int)param8.Direction=ParameterDirection.Outputparam8.Value=1Comd.Parameters.Add(param8)sdrd=Comd.ExecuteReader()报错:'ProPageSet1'附近有语法错误但这个存储过程我用如下方法调用是正常的.Comd.CommandText="ProPageSet1'dhz','id','id','id,s_dbrm,cast(DecryptByCert(257,s_dz)asvarchar(120)),test',15,1,'id>0',10"只是因为要加输出参数和参数带引号的原因才改了调用方法,结果就报错了.谢谢

解决方案

解决方案二:
publicDataSetFillDS(StringpName,SqlParameter[]paras){try{DataSetds=newDataSet();SqlConnectionconn=Conn.getConn();SqlCommandcommand=newSqlCommand(pName,conn);command.CommandType=CommandType.StoredProcedure;if(paras!=null){command.Parameters.AddRange(paras);}SqlDataAdapterad=newSqlDataAdapter(command);ad.Fill(ds);returnds;}catch(Exceptionex){ex.ToString();}returnnull;}
解决方案三:
Comd.CommandText="ProPageSet1"Comd.CommandType=CommandType.StoredProcedure;'默认是文本的,这样一设置表示"ProPageSet1"是存储过程名而不是SQL语句Dimparam1AsNewSqlParameter("@tb",SqlDbType.VarChar,50)param1.Direction=ParameterDirection.Inputparam1.Value="dhz"Comd.Parameters.Add(param1)Dimparam2AsNewSqlParameter("@col",SqlDbType.VarChar,50)param2.Direction=ParameterDirection.Inputparam2.Value="id"Comd.Parameters.Add(param2)Dimparam3AsNewSqlParameter("@colorder",SqlDbType.VarChar,50)param3.Direction=ParameterDirection.Inputparam3.Value="id"Comd.Parameters.Add(param3)Dimparam4AsNewSqlParameter("@collist",SqlDbType.VarChar,800)param4.Direction=ParameterDirection.Inputparam4.Value="id,s_dbrm,cast(DecryptByCert(257,s_dz)asvarchar(120)),test"Comd.Parameters.Add(param4)Dimparam5AsNewSqlParameter("@pagesize",SqlDbType.Int)param5.Direction=ParameterDirection.Inputparam5.Value=15Comd.Parameters.Add(param5)Dimparam6AsNewSqlParameter("@page",SqlDbType.Int)param6.Direction=ParameterDirection.Inputparam6.Value=1Comd.Parameters.Add(param6)Dimparam7AsNewSqlParameter("@condition",SqlDbType.VarChar,800)param7.Direction=ParameterDirection.Inputparam7.Value="id>0"Comd.Parameters.Add(param7)Dimparam8AsNewSqlParameter("@pages",SqlDbType.Int)param8.Direction=ParameterDirection.Outputparam8.Value=1Comd.Parameters.Add(param8)sdrd=Comd.ExecuteReader()

解决方案四:
ADO.NET是对MicrosoftActiveXDataObjects(ADO)一个跨时代的改进,它提供了平台互用性和可伸缩的数据访问。由于传送的数据都是XML格式的,因此任何能够读取XML格式的应用程序都可以进行数据处理。事实上,接受数据的组件不一定要是ADO.NET组件,它可以是基于一个MicrosoftVisualStudio的解决方案,也可以是任何运行在其它平台上的任何应用程序。以前做数据库访问的时候,需要一直与数据库保持连接,直到获取完所有满足需要的数据之后才会断开数据库连接,这种数据库访问方式称之为连接式数据访问技术。相比于以前的连接式数据访问技术,ADO.NET除了提供连接式数据访问技术之外,还提供了另一种断开式解决方案,那就是在内存中模拟一个数据库,也就是内存中的数据库。我们知道在实际的数据库技术中,每个数据库就是一个业务逻辑单元,一般来说这个数据库包含了实现一个应用软件或者一个网站所需要的全部数据。本篇中还讲述了自定义分页在数据库层的理论。
解决方案五:
楼上这位大哥厉害
解决方案六:
引用2楼zhoufoxcn的回复:

VB.NETcodeComd.CommandText="ProPageSet1"Comd.CommandType=CommandType.StoredProcedure;'默认是文本的,这样一设置表示"ProPageSet1"是存储过程名而不是SQL语句Dimparam1AsNewSqlParameter("@tb",SqlDbType.VarChar,50)param1.Direction=ParameterDirection.Inputparam1.Value="dhz"Comd.Parameters.Add(param1)Dimparam2AsNewSqlParameter("@col",SqlDbType.VarChar,50)param2.Direc…

就这个。。。。
解决方案七:
引用2楼zhoufoxcn的回复:

VB.NETcodeComd.CommandText="ProPageSet1"Comd.CommandType=CommandType.StoredProcedure;'默认是文本的,这样一设置表示"ProPageSet1"是存储过程名而不是SQL语句Dimparam1AsNewSqlParameter("@tb",SqlDbType.VarChar,50)param1.Direction=ParameterDirection.Inputparam1.Value="dhz"Comd.Parameters.Add(param1)Dimparam2AsNewSqlParameter("@col",SqlDbType.VarChar,50)param2.Direc…

感觉还是C#看爽些,顶

时间: 2024-09-18 20:40:58

请教关于调用存储过程的问题的相关文章

C#调用存储过程并返回结果

问题描述 虚心请教专家个问题:在C#中调用执行存储过程返回存储过程的结果并想与DATAGRID绑定显示,在界面上输入三个文本框内容作为存储过程的输入参数,请问代码该如何实现啊?如何与DATAGRID绑定代码是?SqlConnectionCS=newSqlConnection("Password=123456;UserID=sa;"+"InitialCatalog=xsgl_en;"+"DataSource=(local)");SqlCommand

CI调用存储过程很慢怎么提速,mysql存储过程本身执行很快,但是在php调用就要0.8s

问题描述 CI调用存储过程很慢怎么提速,mysql存储过程本身执行很快,但是在php调用就要0.8s $this -> db -> reconnect(); $mysqli = new mysqli(); $mysqli -> query(""SET NAMES utf8""); if (mysqli_connect_errno()) { printf('Connect failed: %s ' mysqli_connect_error()); e

C# 调用存储过程

下面以调用:Sql Server 分页存储过程为例 调用代码如下: string MyConn = "server=数据库服务器Ip;uid=数据库用户名;pwd=密码;database=数据库名称;Trusted_Connection=no"; SqlConnection MyConnection = new SqlConnection(MyConn); SqlDataAdapter da = new SqlDataAdapter(); da.SelectCommand = new

ASP调用存储过程源码示例

ASP调用存储过程源码示例 以下是代码:<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%> <%     Set conn = CreateObject("ADODB.Connection")     strCon = "Provider=SQLNCLI;Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=Nor

解析在ASP.NET中调用存储过程的方法

在使用.NET的过程中,数据库访问是一个很重要的部分,特别是在B/S系统的构建过程中,数据库操作几乎成为了一个必不可少的操作.调用存储过程实现数据库操作使很多程序员使用的方法,而且大多数的程序员都是能使用存储过程就使用存储过程,很少直接使用SQL语句,所以存储过程是很有用而且很重要的. 存储过程简介 简单的说,存储过程是由一些SQL语句和控制语句组成的被封装起来的过程,它驻留在数据库中,可以被客户应用程序调用,也可以从另一个过程或触发器调用.它的参数可以被传递和返回.与应用程序中的函数过程类似,

Java 调用存储过程

存储过程 本文阐述了怎么使用DBMS存储过程.我阐述了使用存储过程的基本的和高级特性,比如返回ResultSet.本文假设你对DBMS和JDBC已经非常熟悉,也假设你能够毫无障碍地阅读其它语言写成的代码(即不是Java的语言),但是,并不要求你有任何存储过程的编程经历. 存储过程是指保存在数据库并在数据库端执行的程序.你可以使用特殊的语法在Java类中调用存储过程.在调用时,存储过程的名称及指定的参数通过JDBC连接发送给DBMS,执行存储过程并通过连接(如果有)返回结果. 使用存储过程拥有和使

php调用存储过程返回结果集

php调用存储过程返回结果集,解决can't return a result set in the given context错误的方法需要php调用存储过程,返回一个结果集,发现很困难,找了半天,终于在老外的论坛上找到解决方案,这里本地化一下. 关键就是两点 1)define('CLIENT_MULTI_RESULTS', 131072); 2)$link = mysql_connect("127.0.0.1", "root", "",1,CL

C#中调用存储过程主要是参数使用问题

存储过程|问题 C#中调用存储过程主要是参数使用问题(输入参数,输出参数,返回值)         //现假设conn是已经定义好的连接,proc为存储过程名         //1.调用无参数无返回的存储过程        //SqlCommand cmd=new SqlCommand(proc,conn);        //cmd.CommandType=CommandType.StoredProcedure;//告知执行存储过程        //conn.Open();       

ASP调用存储过程访问SQL Server

server|存储过程|访问     ASP与存储过程(Stored Procedures)的文章不少,但是我怀疑作者们是否真正实践过.我在初学时查阅过大量相关资料,发现其中提供的很多方法实际操作起来并不是那么回事.对于简单的应用,这些资料也许是有帮助的,但仅限于此,因为它们根本就是千篇一律,互相抄袭,稍微复杂点的应用,就全都语焉不详了.     现在,我基本上通过调用存储过程访问SQL Server,以下的文字虽不敢保证绝对正确,但都是实践的总结,希望对大家能有帮助.      存储过程就是作