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是临时参数,用于获取存储过程的返回值,这个参数名称可以是任意的。

  • 相关阅读:
    归档:类和对象
    归档:字符串类
    腾讯云域名解析
    Java课堂动手动脑--方法
    软件工程个人作业03——PSP记录
    软件工程个人作业03
    软件工程个人作业02——PSP0级要求记录 + 第三周进度条
    软件工程个人作业02
    第二周学习进度条
    软件工程个人作业01
  • 原文地址:https://www.cnblogs.com/Gold-fangjin/p/5587769.html
Copyright © 2011-2022 走看看