关于ExecuteNonQuery执行存储过程的返回值 、、实例讲解存储过程的返回值与传出参数、、、C#获取存储过程的 Return返回值和Output输出参数值...
关于ExecuteNonQuery执行存储过程的返回值
用到过ExecuteNonQuery()函数的朋友们在开发的时候肯定这么用过.
if(cmd.ExecuteNonQuery("xxxx")>0)
{
//执行成功!
}
else
{
//执行失败!
}
通过ExecuteNonQuery()的返回值来判断操作数据库的成功与否是可以的.但是要分情况.
1.ExecuteNonQuery() 不执行存储过程.
此时如果对数据库执行,插入,更新,删除操作,返回的是 受影响的行数.(及一个大于等于0的整数)
2.ExecuteNonQuery() 执行查询不返回影响的行数.
2.ExecuteNonQuery 执行存储过程.
[1].存储过程有返回值(传出参数)
(1).把数据库中受影响的行数赋给返回值,这是得到的返回值是受影响的函数(大于或等于0的整数).
(2).把某个值赋给返回值.
[2].存储过程没有返回值
执行成功后返回 -1.
(没有返回值的存储过程理应 返回 受影响的行数 (执行 增删改) 但是.但我们在ado.net中执行存储过程的时候,dotnet 自动为给了存储过程一个默认值:set nocount on;
所以给我们的感觉是执行存储过程默认返回 -1 )
============================================================================
1、执行存储过程
SqlConnection conn = new SqlConnection();//建立连接
conn.ConnectionString = Config.ConnStr;//连接字符串
conn.Open();//打开连接
SqlCommand cmd = new SqlCommand();//创建命令
cmd.Connection = conn;//指定连接
cmd.CommandText = "PRO_AAA";//存储过程名称
cmd.CommandType = CommandType.StoredProcedure;//指定命令的类型是存储过程
cmd.ExecuteNonQuery();//执行
conn.Close();//关闭连接
2、无返回
同上
3、获得返回结果:
指定一个参数,这个参数的方向(“Direction”)是“ReturnValue”。
MyCommand.Parameters.Add(new SqlParameter("@return", SqlDbType.Int));
MyCommand.Parameters["@return"].Direction = ParameterDirection.ReturnValue;
MyCommand.ExecuteNonQuery();
Response.Write(MyCommand.Parameters["@return"].Value.ToString());
4、获得返回的表:
用SqlDataAdapter 执行Command,然后填充到表。
SqlCommand cmd = new SqlCommand("proc_3", con);//同上
cmd.CommandType = CommandType.StoredProcedure;//同上
SqlDataAdapter da = new SqlDataAdapter(cmd);//用SqlDataAdapter执行
DataTable table = new DataTable();//创建一张表
da.Fill(table);//填充表
return table;
参考:
【按:我是为了获得“Return返回值”搜索到第2和第3篇文章的,但是他们都没有找到解决办法,用的是OUTPUR输出。只有第一个是真正的解决办法。】
C#获取存储过程的 Return返回值和Output输出参数值
http://www.2cto.com/kf/201007/52892.html
ASP.NET调用存储过程并接收存储过程返回值
http://duanxifeng123.blog.163.com/blog/static/11542723201072112617414/?fromdm&fromSearch&isFromSearchEngine=yes
为什么存储过程总返回-1 取存储过程的值 取数据集
http://liu.wf.blog.163.com/blog/static/237887452009102335512300/
==========================================================================
实例讲解存储过程的返回值与传出参数 |
发布时间:2008.05.07 04:40 来源:赛迪网 作者:小乔 |
【赛迪网-IT技术报道】存储过程可以有返回值,可以有传出参数。传出参数的数量没有限制,返回值只能有一个,并且执行return 以后,和其他语言的函数中一样,后面的语句就不会再执行了。所以该怎么用,还需要自己来权衡。 下面是获取返回值和传出参数的例子: SqlConnection conn=new SqlConnection ( System.Configuration.ConfigurationManager.AppSettings["ConnectionString"]); SqlCommand comm = new SqlCommand("ReturnValueTest",conn); comm.Parameters.Add("@name", SqlDbType.NVarChar,100).Value ="chitu"; comm.Parameters.Add("@returnTest",SqlDbType.Int ); comm.Parameters.Add ("returnValue",SqlDbType.Int); comm.Parameters["@returnTest"].Direction =ParameterDirection.Output; comm.Parameters["returnValue"].Direction = ParameterDirection.ReturnValue; comm.CommandType = CommandType.StoredProcedure; conn.Open(); comm.ExecuteNonQuery(); conn.Close(); int a =(int) comm.Parameters["@returnTest"].Value; int b = (int)comm.Parameters["returnValue"].Value; 返回值和传出参数彼此的作用还是无法替代的。(责任编辑:卢兆林) |
=====================================================================
- C#获取存储过程的 Return返回值和Output输出参数值
- 2010-07-11 14:34:36 我来说两句
- 收藏 我要投稿
-
1.获取Return返回值
程序代码
//存储过程
//Create PROCEDURE MYSQL
// @a int,
// @b int
//AS
// return @a + @b
//GO
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["LocalSqlServer"].ToString());
conn.Open();
SqlCommand MyCommand = new SqlCommand("MYSQL", 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());2.获取Output输出参数值
程序代码
//存储过程
//Create PROCEDURE MYSQL
// @a int,
// @b int,
// @c int output
//AS
// Set @c = @a + @b
//GO
SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["LocalSqlServer"].ToString());
conn.Open();
SqlCommand MyCommand = new SqlCommand("MYSQL", 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;
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;
}
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;
try
{
conn.Open();
cmd.ExecuteNonQuery();
iRet = (decimal)cmd.Parameters["@Amount"].Value;
}
catch (SqlException ex)
{
throw ex;
}
&n - =========================================================
-
asp.net/C# 执行存储过程技术要点,获取Return返回值,解决“存储过程总返回-1”的问题
1、执行存储过程
SqlConnection conn = new SqlConnection();//建立连接conn.ConnectionString = Config.ConnStr;//连接字符串
conn.Open();//打开连接
SqlCommand cmd = new SqlCommand();//创建命令
cmd.Connection = conn;//指定连接
cmd.CommandText = "PRO_AAA";//存储过程名称
cmd.CommandType = CommandType.StoredProcedure;//指定命令的类型是存储过程
cmd.ExecuteNonQuery();//执行
conn.Close();//关闭连接2、无返回
同上
3、获得返回结果:
指定一个参数,这个参数的方向(“Direction”)是“ReturnValue”。
MyCommand.Parameters.Add(new SqlParameter("@return", SqlDbType.Int));
MyCommand.Parameters["@return"].Direction = ParameterDirection.ReturnValue;
MyCommand.ExecuteNonQuery();
Response.Write(MyCommand.Parameters["@return"].Value.ToString());4、获得返回的表:
用SqlDataAdapter 执行Command,然后填充到表。
SqlCommand cmd = new SqlCommand("proc_3", con);//同上
cmd.CommandType = CommandType.StoredProcedure;//同上
SqlDataAdapter da = new SqlDataAdapter(cmd);//用SqlDataAdapter执行
DataTable table = new DataTable();//创建一张表
da.Fill(table);//填充表
return table;参考:
【按:我是为了获得“Return返回值”搜索到第2和第3篇文章的,但是他们都没有找到解决办法,用的是OUTPUR输出。只有第一个是真正的解决办法。】
C#获取存储过程的 Return返回值和Output输出参数值
http://www.2cto.com/kf/201007/52892.htmlASP.NET调用存储过程并接收存储过程返回值
http://duanxifeng123.blog.163.com/blog/static/11542723201072112617414/?fromdm&fromSearch&isFromSearchEngine=yes
为什么存储过程总返回-1 取存储过程的值 取数据集
http://liu.wf.blog.163.com/blog/static/237887452009102335512300/
流浪是注定的宿命;
漂泊是无尽的轮回。分类: c#/asp.net, 数据库
转载于:https://www.cnblogs.com/meimao5211/p/3384233.html
关于ExecuteNonQuery执行存储过程的返回值 、、实例讲解存储过程的返回值与传出参数、、、C#获取存储过程的 Return返回值和Output输出参数值...相关推荐
- C#获取存储过程的 Return返回值和Output输出参数值
一.不用SQLHelper.cs等帮助类 1.获取Return返回值 程序代码 存储过程 Create PROCEDURE MYSQL @a int, @b int AS return ...
- 如何通过js获取html文本框中的值,js与jquery获取input输入框中的值实例讲解
如何用javascript获取input输入框中的值,js/jq通过name.id.class获取input输入框中的value 先准备一段 HTML 一.jquery获取input文本框中的值 通过 ...
- python参数默认值实例_Python中使用partial改变方法默认参数实例
#!/usr/bin/env python # -*- coding: utf-8 -*- #python2.7x #partial.py #authror: orangleliu ''' funct ...
- 原生ajax如何执行,原生ajax调用数据实例讲解
由于jQuery的盛行,现在使用较多的是jQuery封装好了的ajax,因为解决了浏览器兼容性问题,这对程序员来说就等于去掉了一个心头大患,但并非原生ajax就销声匿迹,并且本人感觉还是对原生的aja ...
- gridview的buttonfield获取该行的索引值(实例讲解)
1.选择gridview控件,创建按纽列buttonfield,将此按纽列的CommandName 设置为Details //本例是为了想要查看改行的详细信息 2.GridView1的属性: OnR ...
- 获取存储过程返回值及代码中获取返回值
获取存储过程返回值及代码中获取返回值 1.OUPUT参数返回值例: 向Order表插入一条记录,返回其标识 CREATE PROCEDURE [dbo].[nb_order_insert]( @o_b ...
- 获取存储过程返回值及代码中获取返回值(转)
获取存储过程返回值及代码中获取返回值 1.OUPUT参数返回值例: 向Order表插入一条记录,返回其标识 CREATE PROCEDURE [dbo].[nb_order_insert]( @o_b ...
- C#获取存储过程返回值和输出参数值的方法
//转自网络,先留个底 1.获取Return返回值 //存储过程 //Create PROCEDURE MYSQL // @a int, // @b int //AS // return @a + @ ...
- java return返回值_java中关于return返回值的用法详解
我们输入一个条件时,系统就会对这个条件进行判断,然后给出一个返回时的结论,我们把这个结果看做是返回值.在java里可以使用return语句来进行返回,从字面意思就能很好的理解它的用法了.下面我们就re ...
最新文章
- 在Activity中响应ListView内部按钮的点击事件的两种方法
- 揭秘阿里中台!一文看懂阿里推荐业务的两大利器
- 二叉树(先序遍历)非递归
- vue+elementUI 键盘回车事件导致页面刷新的问题
- 『C#基础』调用CMD的一个小工具
- 职业生涯中12个最致命的想法
- ThinkPHP的增、删、改、查
- 关于如何收集,标准化和集中化处理Golang日志的一些建议
- CCF	2018-3-1跳一跳
- MOSS工作流任务权限控制
- mysql lvs+keepalived+mha_MHA+Lvs+Keepalived实现MySQL的高可用及读负载均衡_2(MySQL)
- 凤凰os linux双系统,逍遥安卓模拟器双系统无缝连接完胜Remix、凤凰OS
- wso2_使用WSO2开发
- 机器学习预测股票涨跌
- Mars Rover
- Win7升为Win10以及win7系统的重装
- 在matlab中ATB是什么意思,Matlab—线性代数入门
- 【数据结构】无向图与有向图的连通性及相关算法
- git master 是啥?
- halcon学习笔记—电脑无线连接手机摄像头
热门文章
- LeetCode —— 1554. 只有一个不同字符的字符串(Python)
- Python 上下文管理器与with语句
- 最佳的MongoDB客户端管理工具
- ado jet 反复连接 未指定的错误_为什么驱动器的PE端要和变压器中性点有可靠连接?...
- PHP js 点击按钮 切换模版,javascript点击按钮实现隐藏显示切换效果_javascript技巧...
- python正弦波和等腰三角波_51proteus仿真:生成方波、正弦波、锯齿波和三角波
- mvc4 html.dropdownlist,ASP.NET MVC4中使用Html.DropDownListFor的方法示例
- 输入三科成绩 C语言,c语言,编程,输入一名学生的语文、数学和英语三科成绩,计算并输出三门课程的总成绩...
- 64位linux安装mysql数据库吗_Linux下安装Mysql数据库
- 上海java 开发培训_上海十大java培训