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文件
  • 相关阅读:
    SPOJ GSS4 Can you answer these queries IV ——树状数组 并查集
    SPOJ GSS3 Can you answer these queries III ——线段树
    SPOJ GSS2 Can you answer these queries II ——线段树
    SPOJ GSS1 Can you answer these queries I ——线段树
    BZOJ 2178 圆的面积并 ——Simpson积分
    SPOJ CIRU The area of the union of circles ——Simpson积分
    HDU 1724 Ellipse ——Simpson积分
    HDU 1071 The area ——微积分
    HDU 4609 3-idiots ——FFT
    BZOJ 2194 快速傅立叶之二 ——FFT
  • 原文地址:https://www.cnblogs.com/qqhfeng/p/4842922.html
Copyright © 2011-2022 走看看