zoukankan      html  css  js  c++  java
  • C#调用带返回值的存储过程

    1)在SQL Server中建立如下的存储过程:
    
    set ANSI_NULLS ON
    set QUOTED_IDENTIFIER ON
    GO
    CREATE PROCEDURE [dbo].[GetNameById]
     @studentid varchar(8),
     @studentname nvarchar(50) OUTPUT
    AS
    BEGIN
     SELECT @studentname=studentname FROM student
        WHERE studentid=@studentid
     if @@Error<>0
      RETURN -1
     else 
      RETURN 0 
    END
    该存储过程的作用是根据学号,获取姓名,并使用RETURN关键字来返回值。
    
    如果要在SQL Server的查询分析器中执行该存储过程,对应的SQL语句如下:
    
    Declare  @studentname nvarchar(50),
    exec GetNameById @studentname output,@id=2
    select @studentname
    
    select @@Error
    
    (2)编写C#代码:
    
               using (SqlConnection conn = new SqlConnection(connStr))
                {
                    try
                    {
                        SqlCommand cmd = new SqlCommand("GetNameById", conn);
                        cmd.CommandType = CommandType.StoredProcedure;
                        cmd.Parameters.AddWithValue("@studentid", "09888888");  //给输入参数赋值
                        SqlParameter parOutput =cmd.Parameters.Add("@studentname", SqlDbType.NVarChar, 50);  //定义输出参数
                        parOutput.Direction = ParameterDirection.Output;  //参数类型为Output
                        SqlParameter parReturn = new SqlParameter("@return", SqlDbType.Int);
                        parReturn.Direction = ParameterDirection.ReturnValue;   //参数类型为ReturnValue                    cmd.Parameters.Add(parReturn);
                        conn.Open();
                        cmd.ExecuteNonQuery();
                        MessageBox.Show(parOutput.Value.ToString());   //显示输出参数的值
                        MessageBox.Show(parReturn.Value.ToString());  //显示返回值
                    }
                    catch (System.Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                    }
                }
    
    上面的@return是临时参数,用于获取存储过程的返回值,这个参数名称可以是任意的。
    
    拣尽寒枝不肯栖,寂寞沙洲。
    
    
    
    分类: .Net
    
    标签: C#, 存储过程
    
    
    绿色通道: 谢谢推荐! 关注成功 收藏该文与我联系  
    
    
     
    zhouhb
    关注 - 27
    粉丝 - 70 
    
    
    
    关注成功
    
    
    4 
    
    0 
    
    
    推荐成功
    
    
    «  上一篇:DataGridView使用初步
    »  下一篇:利用XmlDocument操作XML文件
  • 相关阅读:
    mysql详解9:触发器和事件
    mysql详解7:视图
    mysql详解6:字符串函数 日期函数 IF CASE
    mysql详解5:复杂查询
    [转]Kubernetes网络组件之Calico策略实践(BGP、RR、IPIP)
    Springcloud 学习笔记05-Mybatis-Plus
    Git学习笔记04--tortoisegit的clone、pull、commit操作、分支的新增、合并、删除
    Git学习笔记03--Git客户端(TortoiseGit)安装与基本使用
    Java 项目bug记录过程--Failed to configure a DataSource
    TiDB学习笔记02-场景案例综述
  • 原文地址:https://www.cnblogs.com/qqhfeng/p/4842922.html
Copyright © 2011-2022 走看看