1.Output参数返回值

 1 CREATE PROCEDURE [dbo].[upInformation](
2 @age int ,
3 @id bigint OUTPUT
4 )
5 AS
6 BEGIN
7 SET NOCOUNT ON;
8 BEGIN
9 INSERT INTO [Information](age )
10 VALUES (@age )
11 SET @id = @@IDENTITY
12 END
13 END

存储过程中获得方法:

1 DECLARE @age int
2 DECLARE @id bigint
3 EXEC [upInformation] @age,@id output

2.Return过程返回值

 1 CREATE PROCEDURE [dbo].[upInformation](
2 @age int ,
3 @id bigint OUTPUT
4 )
5 AS
6 BEGIN
7 SET NOCOUNT ON;
8 IF(EXISTS(SELECT * FROM [Shop] WHERE [s_id] = @age ))
9 BEGIN
10 INSERT INTO [Information](age ) VALUES (@age )
11 SET @id = @@IDENTITY
12 RETURN 1 — 插入成功返回1
13 END
14 ELSE
15 RETURN 0 — 插入失败返回0
16 END

存储过程中获得方法:

1 DECLARE @age int
2 DECLARE @id bigint
3 DECLARE @result bit
4 EXEC @result = [upInformation] @age ,id output

3.Select数据集返回值

1 CREATE PROCEDURE [dbo].[upInformation](
2 @id int
3 )
4 AS
5 BEGIN
6 SET NOCOUNT ON;
7 SELECT id,age FROM [Information]
8 WHERE id = @id
9 GO

存储过程中获得方法:(使用临时表)

1 CREATE TABLE [dbo].[Temp](
2 [id] [bigint] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL,
3 [age] [int] NOT NULL
4 )
5 INSERT [Temp] EXEC [nb_order_select] @id
6 – 这时 Temp 就是EXEC执行SELECT 后的结果集
7 SELECT * FROM [Temp]
8 DROP [Temp] — 删除临时表
declare @table1 table(

 [id] [bigint] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL,
[age] [int] NOT NULL

)

INSERT into @table1 EXEC [nb_order_select] @id
 

C#获取Return返回值

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

C#获取Output输出参数值

 1 SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnStr"].ToString());
2 conn.Open();
3 SqlCommand MyCommand = new SqlCommand("upInformation", conn);
4 MyCommand.CommandType = CommandType.StoredProcedure;
5 MyCommand.Parameters.Add(new SqlParameter("@a", SqlDbType.Int));
6 MyCommand.Parameters["@a"].Value = 20;
7 MyCommand.Parameters.Add(new SqlParameter("@b", SqlDbType.Int));
8 MyCommand.Parameters["@b"].Value = 20;
9 MyCommand.Parameters.Add(new SqlParameter("@c", SqlDbType.Int));
10 MyCommand.Parameters["@c"].Direction = ParameterDirection.Output;
11 MyCommand.ExecuteNonQuery();
12 Response.Write(MyCommand.Parameters["@c"].Value.ToString()); //指定取得存储过程的返回值

C#接收存储过程返回值

 1  public static int Information(User us)
2 {
3 int iRet;
4 SqlConnection conn = new SqlConnection(Conn_Str);
5 SqlCommand cmd = new SqlCommand("upInformation", conn);
6 cmd.CommandType = CommandType.StoredProcedure; //指定存储过程 AddWithValue可以指定名称和值,而Add需要指定名称,类型,再给value
7 cmd.Parameters.AddWithValue("@UName", us.UName);
8 cmd.Parameters.AddWithValue("@UPass", us.UPass);
9 cmd.Parameters.AddWithValue("@PassQuestion", us.PassQuestion);
10 cmd.Parameters.AddWithValue("@PassKey", us.PassKey);
11 cmd.Parameters.AddWithValue("@Email", us.Email);
12 cmd.Parameters.AddWithValue("@RName", us.RName);
13 cmd.Parameters.AddWithValue("@Area", us.Area);
14 cmd.Parameters.AddWithValue("@Address", us.Address);
15 cmd.Parameters.AddWithValue("@ZipCodes", us.ZipCodes);
16 cmd.Parameters.AddWithValue("@Phone", us.Phone);
17 cmd.Parameters.AddWithValue("@QQ", us.QQ);
18 cmd.Parameters.Add("@RETURN_VALUE", "").Direction = ParameterDirection.ReturnValue; //指定输出参数是返回值
19 try
20 {
21 conn.Open();
22 cmd.ExecuteNonQuery();                   //执行存储过程
23 iRet = (int)cmd.Parameters["@RETURN_VALUE"].Value; //取得return的值
24 }
25 catch (SqlException ex)
26 {
27 throw ex;
28 }
29 finally
30 {
31 conn.Close();
32 }
33 return iRet;
34 }

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

 1 public static decimal Cart_UserAmount(int UID)
2 {
3 decimal iRet;
4 SqlConnection conn = new SqlConnection(Conn_Str);
5 SqlCommand cmd = new SqlCommand("Cart_UserAmount", conn);
6 cmd.CommandType = CommandType.StoredProcedure;
7 cmd.Parameters.AddWithValue("@UID", UID);
8 cmd.Parameters.Add("@Amount", SqlDbType.Decimal).Direction=ParameterDirection.Output; //利用Add方法为其添加名称,类型和输出参数
9 try
10 {
11 conn.Open();
12 cmd.ExecuteNonQuery();
13 iRet = (decimal)cmd.Parameters["@Amount"].Value; //取得存储过程中的输出参数
14 }
15 catch (SqlException ex)
16 {
17 throw ex;
18 }
19 finally
20 {
21 conn.Close();
22 }
23 return iRet;
24 }

C#取得结果集

 1 string sqlw = string.Format("exec sp_UserInfo {0}", uid);
2 DataTable dsuser = SqlConn.GetDataSet(sqlw).Tables[0];
3
4 public static DataSet GetDataSet(string sql)
5 {
6 string connStr = System.Configuration.ConfigurationManager.ConnectionStrings["ConnStr"].ToString();
7 SqlConnection conn = new SqlConnection(connStr);
8 SqlCommand cmd = new SqlCommand(sql, conn);
9 SqlDataAdapter da = new SqlDataAdapter(cmd); //直接用SqlDataAdapter将结果集取出来放入dataset中
10 DataSet ds = new DataSet();
11 da.Fill(ds);
12 conn.Close();
13 cmd.Dispose();
14 return ds;
15 }

SqlServer如何获取存储过程的返回值的更多相关文章

  1. 利用SQLServer查询分析器获取存储过程的返回值,检查测试存储过程

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

  2. ADO.NET中ExcuteNonQuery获取存储过程Return返回值

    /// <summary> /// 获取当月用户已投票数量 /// </summary> /// <param name="userId">用户 ...

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

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

  4. C#获取执行存储过程的" 返回值"代码

    以下是C#代码: /// <summary> /// 执行存储过程,返回" 返回值" /// </summary> /// <param name=& ...

  5. 统计文件种类数+获取子shell返回值的其它方法

    前言 只是作为一个shell的小小练习和日常统计用,瞎折腾的过程中也是摸到了获取子shell返回值的几种方法: 肯定还有别的方法,跟进程间的通信相关,希望你能提出建议和补充,谢谢~ 完整程序: #! ...

  6. 无废话Android之activity的生命周期、activity的启动模式、activity横竖屏切换的生命周期、开启新的activity获取他的返回值、利用广播实现ip拨号、短信接收广播、短信监听器(6)

    1.activity的生命周期 这七个方法定义了Activity的完整生命周期.实现这些方法可以帮助我们监视其中的三个嵌套生命周期循环: (1)Activity的完整生命周期 自第一次调用onCrea ...

  7. web3调用call()方法获取不到返回值

    一.web3的call()获取不到返回值问题和解决方法 在彩票小合约中,遇到一个问题:合约中 有两个方法 第一个返回一个账户地址,没有使用到当前方法调用者信息: 第二个使用到了当前方法调用者信息 在w ...

  8. 在Delphi中如何获得SQL中存储过程的返回值?

    示例存储过程:create procedure proc_loginusername varchar(20),password varchar(20)asdeclare @result intsele ...

  9. .net 接收存储过程的返回值 。。。。

    .net 接收存储过程的返回值 .... Posted on 2009-06-10 20:26 且行且思 阅读(...) 评论(...) 编辑 收藏 例如在向数据库添加新数据时,需要检测是否有重复 本 ...

随机推荐

  1. JavaScript match()方法和正则表达式match()

    先介绍参数为普通字符串的使用方式,此时match方法的返回值是存放首次匹配内容的数组.如果没有找到匹配结果,返回null.语法结构: 1 str.match(searchvalue)参数解析:(1). ...

  2. mongo 监听指定语句

    class Program { private static string conn = "mongodb://47.104.206.56:27017"; //数据库名称 priv ...

  3. handsontable合并表头

    想在页面中做类似excel的操作,发现handsontable符合要求. 然后发现这个文章 http://blog.csdn.net/wynan830/article/details/9054195 ...

  4. Python发送邮件脚本

    import smtplib from email.mime.text import MIMEText mailserver = "smtp.163.com" username_s ...

  5. .netcore 读取ansi编码

    public class FileHelper { //根据文件自动觉察编码并输出内容 public static string GetText(string path) { StringBuilde ...

  6. C++通用WMI接口实现获取Windows操作系统内核版本号

    作为一名Windows开发者,能熟练掌握WMI技术,在开发Windows应用程序的时候往往能够事半功倍.今天来给大家分享一个使用WMI来获取Windows操作系统内核版本号的例子. 首先我们打开WMI ...

  7. 电脑突然使用不了复制粘贴快捷键,Ctrl+C和Ctrl+V没用

    今天不知道怎么回事,在复制代码的时候突然用不了Ctrl+C和Ctrl+V了 刚开始我还以为是eclipse出问题,然后我在idea中是可以复制 和 粘贴的,然后我又打开文本编辑器notepad++,发 ...

  8. 【MySQL 读书笔记】全局锁 | 表锁 | 行锁

    全局锁 全局锁是针对数据库实例的直接加锁,MySQL 提供了一个加全局锁的方法, Flush tables with read lock 可以使用锁将整个表的增删改操作都锁上其中包括 ddl 语句,只 ...

  9. Tutorial: Create a Windows Machine Learning UWP application (C#)

    In this tutorial, we'll build a simple Universal Windows Platform application that uses a trained ma ...

  10. 前端知识之jQuery

    通过 jQuery,您可以选取(查询,query) HTML 元素,并对它们执行"操作"(actions). http://www.runoob.com/jquery/jquery ...