CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  MS-SQL Server >  基础类

关于在程序中调用带output参数的存储过程的问题?谢谢请教了

楼主fangxianghua9801(爱在2005!)2005-08-01 14:29:02 在 MS-SQL Server / 基础类 提问

我在程序中要调用一个带output参数的存储过程,根据返回的output参数值来判断存储过程里的sql是否都正确的执行。那么在程序中该怎么写调用这种存储过程,还有就是怎样得到返回的output参数值。  
  CREATE   PROCEDURE   InsertNewsCont  
        @NewsTitle   nvarchar(50),  
        @NewsContent   ntext,  
        @NewsFrom   nvarchar(50),  
        @ReaSon   nvarchar(50)   output  
    AS  
  select   *   from     NewsTB   where     NewsTitle=   @NewsTitle  
  if   @@rowcount<1  
  begin  
  insert   into   NewsTB(NewsTitle,NewsContent,NewsFrom)   Values(@NewsTitle,@NewsContent,@NewsFrom)  
  end  
  else  
  begin  
  set   @ReaSon='对不起,有重复标题!'  
  end  
  GO  
  我的目的就是在程序运行中能获取@ReaSon(当@@rowcount>1情况下)  
  用.net程序 问题点数:30、回复次数:4Top

1 楼fangxianghua9801(爱在2005!)回复于 2005-08-01 14:45:31 得分 0

dingTop

2 楼vivianfdlpw()回复于 2005-08-01 14:52:22 得分 10

System.Data   .SqlClient.SqlParameter   []   parm=new   SqlParameter   []  
  {  
      new   SqlParameter   ("@NewsTitle",SqlDbType.NVarChar),  
      new   SqlParameter   ("@NewsContent",SqlDbType.NText),  
      new   SqlParameter   ("@NewsFrom",SqlDbType.NVarChar),  
      new   SqlParameter   ("@ReaSon",SqlDbType.NVarChar)  
  };  
  parm[0].Value   ="title";  
  parm[1].Value="content";  
  parm[2].Value   ="from";  
  parm[3].Value   ="1";  
  parm[3].Direction   =System.Data   .ParameterDirection   .Output;  
  DBHelper.ExecuteNonQuery("InsertNewsCont",parm,CommandType.StoredProcedure);  
   
  if(parm[3].Value==System.DBNull.Value   )  
  {  
      Response.Write   ("插入成功!");  
  }  
  else  
  {  
      Response.Write   (parm[3].Value.ToString());  
  }Top

3 楼zlp321002(Life Is Good,Let's Shine)回复于 2005-08-01 14:55:58 得分 10

--REM   执行存储过程,返回字符串数组   VB.net实现,稍微改改,就可以满足你的需求...  
          Public   Shared   Function   ExecuteSP_ToArrary(ByVal   sConnString   As   String,   ByVal   Text_STCD   As   String,   ByVal   Text_TIME   As   String,   ByRef   TableInfo()   As   String)  
                  Dim   conn   As   OleDbConnection   =   New   OleDbConnection(sConnString)  
                  ReDim   TableInfo(2)  
   
                  Try  
                          conn.Open()  
                          Dim   command   As   OleDbCommand   =   New   OleDbCommand("P_GET_QueryValue",   conn)  
                          command.CommandType   =   CommandType.StoredProcedure  
                          Dim   sqlParams()   As   OleDbParameter   =   {New   OleDbParameter("@STCD",   Text_STCD),   New   OleDbParameter("@GETM",   Text_TIME),   New   OleDbParameter("@ReturnValue",   OleDbType.VarChar,   8000),   New   OleDbParameter("@ReturnColumnCode",   OleDbType.VarChar,   8000),   New   OleDbParameter("@ReturnColumnName",   OleDbType.VarChar,   8000)}  
                          sqlParams(2).Direction   =   ParameterDirection.Output  
                          sqlParams(3).Direction   =   ParameterDirection.Output  
                          sqlParams(4).Direction   =   ParameterDirection.Output  
                          Dim   i   As   Integer   =   0  
                          While   i   <   sqlParams.Length  
                                  command.Parameters.Add(sqlParams(i))  
                                  i   +=   1  
                          End   While  
                          command.ExecuteNonQuery()  
                          If   sqlParams(2).Value.ToString().Length   >   0   Then  
                                  TableInfo(0)   =   sqlParams(2).Value.ToString()  
                          Else  
                          End   If  
   
                          If   sqlParams(3).Value.ToString().Length   >   0   Then  
                                  TableInfo(1)   =   sqlParams(3).Value.ToString()  
                          Else  
                          End   If  
   
                          If   sqlParams(4).Value.ToString().Length   >   0   Then  
                                  TableInfo(2)   =   sqlParams(4).Value.ToString()  
                          Else  
                          End   If  
   
                  Catch   ex   As   Exception  
                          Zehua.Log.exNoteBugs(ex,   "SigleStcdEdit.aspx")    
                  Finally  
                          conn.Close()  
                  End   Try  
   
          End   FunctionTop

4 楼aw511(点点星灯)回复于 2005-08-01 14:58:09 得分 10

Public   Function   CompanyNameByUserName(ByVal   UserName   As   String)   As   String  
                  Try  
                          db.Open()  
                          Dim   mydata   As   SqlCommand  
                          mydata   =   New   SqlCommand("CompnayName",   db)         --CompnayName存储过程名  
                          mydata.CommandType   =   CommandType.StoredProcedure  
                          mydata.Parameters.Add("@UserName",   SqlDbType.NVarChar,   50).Value   =   UserName  
                          Dim   CompanyName   As   String  
                          CompanyName   =   mydata.ExecuteScalar  
                          Return   CompanyName  
                  Catch   ex   As   Exception  
                          Throw   New   Exception(ex.Message)  
                  Finally  
                          db.Close()  
                  End   Try  
          End   Function  
   
   
  --类似上面Top

相关问题

  • 带参数的存储过程调用
  • 调用带参数的存储过程
  • C#中调用SQL Server存储过程(带output参数)的问题
  • C#中调用SQL Server存储过程(带output参数)的问题
  • 在pb里面怎么调用sqlserver的带output参数的存储过程
  • 写好了存储过程在VB中如何调用 output参数
  • 怎么调用带参数的存储过程? (内附存储过程)
  • 获取存储过程output参数
  • 请教各位 大哥一个存储过程的调用问题(有 output 参数),谢谢!
  • 在VB中如何用调用带参数的存储过程?

关键词

  • 存储过程
  • db
  • 调用
  • sqlparams
  • mydata
  • output参数
  • 程序
  • companyname
  • nvarchar
  • tostring

得分解答快速导航

  • 帖主:fangxianghua9801
  • vivianfdlpw
  • zlp321002
  • aw511

相关链接

  • SQL Server类图书

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo