1.OUPUT参数返回值

复制代码代码如下:

CREATE PROCEDURE [dbo].[nb_order_insert](
@o_buyerid int ,
@o_id bigint OUTPUT
)
AS
BEGIN
SET NOCOUNT ON;
BEGIN
INSERT INTO [Order](o_buyerid )
VALUES (@o_buyerid )
SET @o_id = @@IDENTITY
END
END

存储过程中获得方法:

复制代码代码如下:

DECLARE @o_buyerid int
DECLARE @o_id bigint
EXEC [nb_order_insert] @o_buyerid,@o_id output

2.RETURN过程返回值

复制代码代码如下:

CREATE PROCEDURE [dbo].[nb_order_insert](
@o_buyerid int ,
@o_id bigint OUTPUT
)
AS
BEGIN
SET NOCOUNT ON;
IF(EXISTS(SELECT * FROM [Shop] WHERE [s_id] = @o_buyerid ))
BEGIN
 INSERT INTO [Order](o_buyerid ) VALUES (@o_buyerid ) 
 SET @o_id = @@IDENTITY 
 RETURN 1 — 插入成功返回1 
END 
ELSE 
 RETURN 0 — 插入失败返回0 END

存储过程中的获取方法

复制代码代码如下:

DECLARE @o_buyerid int
DECLARE @o_id bigint
DECLARE @result bit
EXEC @result = [nb_order_insert] @o_buyerid ,o_id output

3.SELECT 数据集返回值

复制代码代码如下:

CREATE PROCEDURE [dbo].[nb_order_select](
@o_id int
)
AS
BEGIN
SET NOCOUNT ON;
SELECT o_id,o_buyerid FROM [Order]
WHERE o_id = @o_id
GO

存储过程中的获取方法

(1)、使用临时表的方法

复制代码代码如下:

CREATE TABLE [dbo].[Temp](
[o_id] [bigint] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL,
[o_buyerid] [int] NOT NULL
)
INSERT [Temp] EXEC [nb_order_select] @o_id
– 这时 Temp 就是EXEC执行SELECT 后的结果集
SELECT * FROM [Temp]
DROP [Temp] — 删除临时表

1.获取Return返回值

复制代码代码如下:

SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnStr"].ToString());
conn.Open();
SqlCommand MyCommand = new SqlCommand("nb_order", conn);  //存储过程名字
MyCommand.CommandType = CommandType.StoredProcedure;   //指定类型为存储过程
MyCommand.Parameters.Add(new SqlParameter("@a", SqlDbType.Int));
MyCommand.Parameters["@a"].Value = 10;
MyCommand.Parameters.Add(new SqlParameter("@b", SqlDbType.Int));
MyCommand.Parameters["@b"].Value = 20;
MyCommand.Parameters.Add(new SqlParameter("@return", SqlDbType.Int));
MyCommand.Parameters["@return"].Direction = ParameterDirection.ReturnValue;
MyCommand.ExecuteNonQuery();                //执行存储过程
Response.Write(MyCommand.Parameters["@return"].Value.ToString()); //取得return的返回值

2.获取Output输出参数值

复制代码代码如下:

SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnStr"].ToString());
conn.Open();
SqlCommand MyCommand = new SqlCommand("nb_order", conn);
MyCommand.CommandType = CommandType.StoredProcedure;
MyCommand.Parameters.Add(new SqlParameter("@a", SqlDbType.Int));
MyCommand.Parameters["@a"].Value = 20;
MyCommand.Parameters.Add(new SqlParameter("@b", SqlDbType.Int));
MyCommand.Parameters["@b"].Value = 20;
MyCommand.Parameters.Add(new SqlParameter("@c", SqlDbType.Int));
MyCommand.Parameters["@c"].Direction = ParameterDirection.Output;
MyCommand.ExecuteNonQuery();
Response.Write(MyCommand.Parameters["@c"].Value.ToString()); //指定取得存储过程的返回值

C#接收存储过程返回值:

复制代码代码如下:

public static int User_Add(User us)
     {
         int iRet;
         SqlConnection conn = new SqlConnection(Conn_Str);
         SqlCommand cmd = new SqlCommand("User_Add", conn);
         cmd.CommandType = CommandType.StoredProcedure;   //指定存储过程  AddWithValue可以指定名称和值,而Add需要指定名称,类型,再给value
         cmd.Parameters.AddWithValue("@UName", us.UName);
         cmd.Parameters.AddWithValue("@UPass", us.UPass);
         cmd.Parameters.AddWithValue("@PassQuestion", us.PassQuestion);
         cmd.Parameters.AddWithValue("@PassKey", us.PassKey);
         cmd.Parameters.AddWithValue("@Email", us.Email);
         cmd.Parameters.AddWithValue("@RName", us.RName);
         cmd.Parameters.AddWithValue("@Area", us.Area);
         cmd.Parameters.AddWithValue("@Address", us.Address);
         cmd.Parameters.AddWithValue("@ZipCodes", us.ZipCodes);
         cmd.Parameters.AddWithValue("@Phone", us.Phone);
         cmd.Parameters.AddWithValue("@QQ", us.QQ);
         cmd.Parameters.Add("@RETURN_VALUE", "").Direction = ParameterDirection.ReturnValue;   //指定输出参数是返回值    
         try
         {
             conn.Open();
             cmd.ExecuteNonQuery();                   //执行存储过程
             iRet = (int)cmd.Parameters["@RETURN_VALUE"].Value;    //取得return的值
         }
         catch (SqlException ex)
         {
             throw ex;
         }
         finally
         {
             conn.Close();
         }
         return iRet;
     }

C#接收存储过程的输出参数:

复制代码代码如下:

public static decimal Cart_UserAmount(int UID)
    {
        decimal iRet;
        SqlConnection conn = new SqlConnection(Conn_Str);
        SqlCommand cmd = new SqlCommand("Cart_UserAmount", conn);
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.Parameters.AddWithValue("@UID", UID);
        cmd.Parameters.Add("@Amount", SqlDbType.Decimal).Direction=ParameterDirection.Output;  //利用Add方法为其添加名称,类型和输出参数
        try
        {
            conn.Open();
            cmd.ExecuteNonQuery();
            iRet = (decimal)cmd.Parameters["@Amount"].Value;  //取得存储过程中的输出参数
        }
        catch (SqlException ex)
        {
            throw ex;
        }
        finally
        {
            conn.Close();
        }
        return iRet;
    }

C#取得结果集:

复制代码代码如下:

string sqlw = string.Format("exec sp_UserInfo {0}", uid);
            DataTable dsuser = SqlConn.GetDataSet(sqlw).Tables[0];

public static DataSet GetDataSet(string sql)
        {
            string connStr = System.Configuration.ConfigurationManager.ConnectionStrings["ConnStr"].ToString();
            SqlConnection conn = new SqlConnection(connStr);
            SqlCommand cmd = new SqlCommand(sql, conn);
            SqlDataAdapter da = new SqlDataAdapter(cmd);  //直接用SqlDataAdapter将结果集取出来放入dataset中
            DataSet ds = new DataSet();
            da.Fill(ds);
            conn.Close();
            cmd.Dispose();
            return ds;
        }

转载于:https://www.cnblogs.com/toSeeMyDream/p/4206971.html

将存储过程的返回值赋给变量相关推荐

  1. getchar()函数的返回值赋给char型,用if(ch=getchar() != EOF)测试,输入ctrl+z同样可以结束循环的分析...

    2013-07-18 21:35:58 getchar()函数的返回值赋给char型,用if(ch=getchar() != EOF)测试,输入ctrl+z同样可以结束循环的分析. char是字符型数 ...

  2. 关于ExecuteNonQuery执行存储过程的返回值 、、实例讲解存储过程的返回值与传出参数、、、C#获取存储过程的 Return返回值和Output输出参数值...

    关于ExecuteNonQuery执行存储过程的返回值 用到过ExecuteNonQuery()函数的朋友们在开发的时候肯定这么用过. if(cmd.ExecuteNonQuery("xxx ...

  3. python参数类型限定_python限定方法参数类型、返回值类型、变量类型等|python3教程|python入门|python教程...

    https://www.xin3721.com/eschool/python.html typing模块的作用 自python3.5开始,PEP484为python引入了类型注解(type hints ...

  4. ajax存到php变量,Ajax返回值作为PHP变量

    Ajax返回值作为PHP变量 内容精选 换一换 在TIK DSL中插入一个对表达式求值并打印结果的语句.调试器执行到这行代码时会对表达式求值并将结果打印在屏幕上.def debug_print(exp ...

  5. SQLServer存储过程的返回值 查询分析器/程序

    1.存储过程没有返回值的情况(即存储过程语句中没有return之类的语句) 用方法 int count = ExecuteNonQuery(..)执行存储过程其返回值只有两种情况  (1)如果通过查询 ...

  6. python限定方法参数类型、返回值类型、变量类型

    typing模块的作用 自python3.5开始,PEP484为python引入了类型注解(type hints) 类型检查,防止运行时出现参数和返回值类型.变量类型不符合. 作为开发文档附加说明,方 ...

  7. python限定方法参数类型、返回值类型、变量类型等

    typing模块的作用 自python3.5开始,PEP484为python引入了类型注解(type hints) 类型检查,防止运行时出现参数和返回值类型.变量类型不符合. 作为开发文档附加说明,方 ...

  8. ajax从php里能输出俩值,Ajax返回值作为PHP变量

    Ajax返回值作为PHP变量 内容精选 换一换 Mock服务支持使用以下内置函数或变量引用生成动态响应.通过"{xxx}"设置引用变量,可以引用接口路径中的参数(路径变量),或是从 ...

  9. 在 C# 中如何获取存储过程的返回值 ?

    咨询区 GurdeepS: 我有下面的查询语句: set ANSI_NULLS ON set QUOTED_IDENTIFIER ON goALTER PROCEDURE [dbo].[Validat ...

最新文章

  1. 基于自监督网络的手部静脉无损三维测量
  2. vue 保留两位小数 不能直接用toFixed(2) ?
  3. 关于web工程项目路径的一些说明
  4. TensorFlow: Could not load requested Qt binding.
  5. java链表.set_Java中的数组、链表、List、ArrayList、LinkedList、Vector、Set
  6. Linux 命令之 locate -- 文件查找工具(查找文件/搜索文件)
  7. css字体自定义,bootstrap自定义字体
  8. docker 安装 oracle12,Centos7下利用docker安装oracle12c
  9. tensorflow切换到gpu_使用免费的GPU进行深度学习
  10. python取两个set的并集、交集、差集
  11. Django关联数据库时报错TypeError: __init__() missing 1 required positional argument: 'on_delete'...
  12. 算法精解----11、开地址哈希表
  13. debouncing 与 throttling
  14. Linux串口编程select方式
  15. IDC:阿里云获2021中国数据治理平台市场份额第一
  16. 详解,N沟道MOS管和P沟道MOS管
  17. 新版H5微信网页JS-SDK自定义分享功能实现
  18. linux(七) echo的两种用法
  19. java中jframe是什么_java中JFrame是什么
  20. 运用计算机通过动力方程,计算机技术在地下水动力学课程素材建设中的应用

热门文章

  1. 凭借这份Java面试题集,分布式宝典:限流+缓存+通讯
  2. 回归插补法_用均值替换、 回归插补及多重插补进行插补
  3. python连接mongo_Python连接MongoDB操作
  4. 单个正态总体均值的区间估计_考研数学闭关修炼习题讲解(3536)统计、估计与检验...
  5. 网络营销——网站权重并不是判断网站营销水平的唯一标准
  6. 企业想独立完成网站建设也不是不可以
  7. 在不同制作基础上该如何选择网页制作软件?
  8. 提升网站竞争力从这三方面着手努力!
  9. mfc 静态框接收tab焦点_目标检测中焦点损失的入门指南
  10. 趣谈网络协议笔记-一