C#获取Sybase存储过程的Return值出错!

问题描述

代码:publicintInsertDBBySend(stringbranchId,stringoperatorA,outstringfileName){intresult=-1;OdbcParameter[]pars=newOdbcParameter[]{newOdbcParameter("@branch_id",OdbcType.VarChar,11),newOdbcParameter("@operator",OdbcType.VarChar,10),newOdbcParameter("@error_msg",OdbcType.VarChar,100),newOdbcParameter("@file_name",OdbcType.VarChar,60),newOdbcParameter("@return",SqlDbType.Int)};pars[0].Value="SMBC";//branchIdpars[1].Value="SYS";//operatorApars[2].Direction=ParameterDirection.Output;pars[3].Direction=ParameterDirection.Output;//pars[4].Value=-1;pars[4].Direction=ParameterDirection.ReturnValue;ArrayListlist=newArrayList();result=Convert.ToInt32(dbHelp.ExecuteQueryForScalar("sp_CMSCPGGenMsg",pars,outlist));}publicobjectExecuteQueryForScalar(stringstrSql,OdbcParameter[]parameters,outArrayListparasList){objectresult=-1;try{OdbcCommandsqlCmd=PrepareCommand(CommandType.StoredProcedure,strSql,parameters);parasList=newArrayList();sqlCmd.ExecuteNonQuery();result=sqlCmd.Parameters["@return"].Value;for(inti=0;i<sqlCmd.Parameters.Count;i++){if(sqlCmd.Parameters[i].Direction==ParameterDirection.Output||sqlCmd.Parameters[i].Direction==ParameterDirection.InputOutput)parasList.Add(sqlCmd.Parameters[i].Value);}}catch(Exceptionex){conn.Close();throwex;}finally{//不能关闭数据库}returnresult;}protectedOdbcCommandPrepareCommand(CommandTypecmdType,stringcmdText,paramsOdbcParameter[]cmdParms){//数据库连接对象if(conn==null)conn=newOdbcConnection(conn_string);try{OdbcCommandcmd;//数据库连接状态if(conn.State!=ConnectionState.Open)conn.Open();//命令初始话cmd=conn.CreateCommand();//cmd.Connection=conn;cmd.CommandText="exec"+cmdText+""+getDuoGeWenHao(cmdParms.Length);//是否起事物if(trans!=null)cmd.Transaction=trans;//命令类型cmd.CommandType=cmdType;//传入命令参数if(cmdParms!=null){foreach(OdbcParameterparmincmdParms){cmd.Parameters.Add(parm);}}returncmd;}catch(Exceptionex){conn.Close();}returnnull;}

报ERROR[HY000][INTERSOLV][ODBCSQLServerdriver][SQLServer]ct_describe():userapilayer:externalerror:Anillegalvalueof3givenforparameteritem.错误,我急死了,调了一天,还是没解决!请高手指点

解决方案

解决方案二:
自己订,有谁能帮忙看看啊!!!
解决方案三:
补充下,刚刚里面还有个方法,继续贴!privatestringgetDuoGeWenHao(intnumber){if(number<1)return"";stringstr="?";for(inti=1;i<number;i++)str+=",?";returnstr;}

时间: 2024-10-22 21:40:40

C#获取Sybase存储过程的Return值出错!的相关文章

c# 调用sybase存储过程带返回值的,怎么搞?

问题描述 c#调用sybase存储过程带返回值的,怎么搞? 解决方案 解决方案二:大哥们帮帮我啊解决方案三:晕,怎么没有人啊

php调用MsSQL存储过程使用内置RETVAL获取过程中的return值

本篇文章是对php调用MsSQL存储过程使用内置RETVAL获取过程中的return值的方法进行了详细的分析介绍,需要的朋友参考下   [PHP代码] 复制代码 代码如下:  $stmt = mssql_init('P__Global_Test', $conn) or die("initialize stored procedure failure");  mssql_bind($stmt, "RETVAL", $returnValue, SQLINT4, true

sqlserver-如何获取SQL SERVER 2008 存储过程参数默认值

问题描述 如何获取SQL SERVER 2008 存储过程参数默认值 比如我的存储过程创建语句如下: CREATE PROC [dbo].[SearchBillDetail] ( @OpBeginDate DATETIME , @OpEndDate DATETIME , @BillTypeID INT , @BillOperType INT , @SaleOperID INT = 1, @DrCompID INT = NULL ) AS SET NOCOUNT ON -- 后面省略 这是我需要通

js-ie下使用jQuery获取对象并设置值出错,火狐下正常

问题描述 ie下使用jQuery获取对象并设置值出错,火狐下正常 调试时控制台不断输出错误信息: 获取的是input,input是在js中动态添加上的,鼠标移上去就会显示出来 为input绑定了一个"change"事件,但是在事件处理中,在ie下用属性选择器不能获取到对象并报错 求解??? ie9+jquery1.7 解决方案 你的IE是哪个版本的,可以使用高版本试下,如果高版本可以,表示你当前版本不支持这个功能 解决方案二: 换jquery1.9左右的版本试试,jquery2.0版本

统一的获取,设置UI控件值

在编写WebForm或WinForm程序时,我们经常需要编写很多获取,设置UI控件值代码.这确实 是一件重复,麻烦而又容易出错的工作.所以我们应该将这个工作交给计算机去做解放我们的 劳动力.一般来说UI上的控件都是和我们的EntityObject相对应的,所以利用反射将 EntityObject中属性值赋给控件或通过控件填充EntityObject是非常方便的.但是要想让计算 机自动干活就要顶一个规则,就是控件ID = 前缀 + 属性名.比如我们有一个User类其定义如 下: class Use

使用Data Access Application Block 得到存储过程的返回值

access|application|存储过程     今天有位朋友问我如何在Data Access Application Block中得到存储的过程的返回值,我才发现自己以前写的文章中确实没提到这方面的问题,现在来补充一下,具体的解决方法如下: 1.首先建立一个具有返回值的存储过程,作为示例,我就简单的建一个存储过程,如下: create proc test(    @id        int)asdeclare @flag intselect * from person where id

jquery获取多个checkbox的值异步提交给php的方法

         本文实例讲述了jquery获取多个checkbox的值异步提交给php的方法.分享给大家供大家参考.具体实现方法如下:           html代码: ? 1 2 3 4 5 6 7 8 <tr> <td><input type="checkbox" name="uid" value="<?=$item['mtaccount_id']?>"></td> <td

使用反射获取和设置对象的值

使用Java如何获取对象的私有成员变量的值呢? 有一个bean: Java代码   public class Student2 {       /***       * 学号       */       private String schoolNumber;       private String classroom;                    public void setSchoolNumber(String schoolNumber) {           this.s

使用JavaScript获取Request中参数的值方法_javascript技巧

假设现在有一个URL,如下. http://www.jb51.net 如何通过JS访问到id和name里面的值呢,实现我们来分析一下思路. 先获取当前页面的URL,通过window.location.href. 提取该URL?后面的部分,通过slice()方法. 把获取到的Request对象分割成字符串数组,通过split() 方法. 接下来看代码. function getUrlVars() { var vars = [], hash; var hashes = window.location