ASP.NET 加入返回参数ReturnValue
说明:很多时候,在DBHelper函数中,都能看到以下的代码:
cmd.Parameters.Add(new SqlParameter("ReturnValue", SqlDbType.Int, ,
ParameterDirection.ReturnValue, false, , ,
string.Empty, DataRowVersion.Default, null));
其起的作用是:当调用的存储过程中如果有Return @xxx 就会把这个值返回给这个ReturnValue 参数。这样你在代码里就可以调用这个值了。
例子:
数据库:
操作的表:tb_user
在数据库中添加一个一个存储过程:
create proc Test
@id int,@name varchar(20),@pwd varchar(20)
as
begin
declare @count int
insert into tb_login(id,name,pwd) values(@id,@name,@pwd)
select @count = (select count(*) from tb_login)
return @count
end
go
后台代码:
数据库操作
【Class】DataBase:
数据库库连接自己写了
/// <summary>
/// 执行命令
/// </summary>
/// <param name="procName">命令文本</param>
/// <param name="prams">参数对象</param>
/// <returns></returns>
public int RunProc(string procName, SqlParameter[] prams)
{
SqlCommand cmd = CreateCommand(procName, prams);
cmd.ExecuteNonQuery();
this.Close();
//得到成功执行的返回值
return (int)cmd.Parameters["ReturnValue"].Value;
}
/// <summary>
/// 创建一个SqlCommand对象以此来执行命令文本
/// </summary>
/// <param name="procName">命令文本</param>
/// <param name="prams"命令文本所需参数</param>
/// <returns>返回SqlCommand对象</returns>
private SqlCommand CreateCommand(string procName, SqlParameter[] prams)
{
this.Open();
SqlCommand cmd = new SqlCommand(procName, conn);
//cmd.CommandType = CommandType.Text;// 执行类型:命令文本
cmd.CommandType = CommandType.StoredProcedure; //执行类型:存储过程 //一次把参数传入命令文本
if (prams != null)
{
foreach (SqlParameter param in prams)
{
cmd.Parameters.Add(param);
}
} //加入返回参数
cmd.Parameters.Add(new SqlParameter("ReturnValue", SqlDbType.Int, ,
ParameterDirection.ReturnValue, false, , ,
string.Empty, DataRowVersion.Default, null)); return cmd;
}
实体类:
Class User
public class User
{
private int id;
private string name;
private string pwd; public string Pwd
{
get { return pwd; }
set { pwd = value; }
} public string Name
{
get { return name; }
set { name = value; }
} public int Id
{
get { return id; }
set { id = value; }
}
}
测试数据库类:
Class TestDataBase
public class TestDataBase
{
DataBase db = new DataBase();
public int AddUser(User newUser)
{
SqlParameter[] prams = {
db.MakeInParam("@id",SqlDbType.Int,,newUser.Id),
db.MakeInParam("@name",SqlDbType.VarChar,,newUser.Name),
db.MakeInParam("@pwd",SqlDbType.VarChar,,newUser.Pwd)
}; return db.RunProc("Test", prams);
} }
前台:
Test.aspx:
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="label1" runat="server"></asp:Label>
</div>
</form>
</body>
Test.aspx.cs:
public partial class Test : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
User newUser = new User();
newUser.Id = ;
newUser.Name = "kkK";
newUser.Pwd = "kkk"; TestDataBase tdb = new TestDataBase();
int num = tdb.AddUser(newUser); label1.Text = num.ToString();
}
}
}
执行前,查看数据库:
执行后:
返回结果:
其他的例子:
摘自:http://bbs.csdn.net/topics/330002062
在更新数据表数据库时,可以通过返回值,确定更新是否成功。
通常的用法:
c# code:
SqlConnection conn = CreateSqlConnection(); SqlCommand cmd = new SqlCommand("sp_InsertInstitute", conn); cmd.CommandType = CommandType.StoredProcedure; SqlParameter[] parms = new SqlParameter[]{ new SqlParameter("@InstituteNO",""), new SqlParameter("@InstituteName","计算机学院"), new SqlParameter("@return",SqlDbType.Int) }; foreach (SqlParameter parm in parms) { cmd.Parameters.Add(parm); } cmd.Parameters["@return"].Direction = ParameterDirection.ReturnValue; try { cmd.ExecuteScalar(); } catch (SqlException ex) { Console.WriteLine("操作失败!" + ex.Message); return; } finally { conn.Close(); } string strTmp = cmd.Parameters["@return"].Value.ToString(); switch (strTmp) { case "": Console.WriteLine("添加成功"); break; case "": Console.WriteLine("数据有重复"); break; case "": Console.WriteLine("数据操作失败"); break; case "": Console.WriteLine("插入数据为空"); break; } Console.ReadKey();
sql code:
CREATE PROCEDURE [dbo].[sp_InsertHotspot] @hotTime int, @hotContent xml AS BEGIN TRANSACTION INSERT INTO t_Hotspot([iHotTime],[tHotContent] ) VALUES(@hotTime ,@hotContent ) IF @@ERROR <> 0 BEGIN ROLLBACK TRANSACTION RETURN 1--返回表示操作失败 END ELSE BEGIN COMMIT TRANSACTION RETURN 0--返回表示操作成功 END
ASP.NET 加入返回参数ReturnValue的更多相关文章
- asp.net中URL参数传值中文乱码的三种解决办法
在做Asp.Net开发的时候,参数传递中文时,经常会遇到页面乱码的问题,下面是在网上收集的相关资料,请大家参考: 解决的方法一般有3种: 1.设置web.config文件 <system.web ...
- Parameter Binding in ASP.NET Web API(参数绑定)
Parameter Binding in ASP.NET Web API(参数绑定) 导航 阅读本文之前,您也可以到Asp.Net Web API 2 系列导航进行查看 http://www.cnbl ...
- Asp获取网址相关参数大全
Asp获取网址相关参数大全 代码一:[获取地址中的文件名,不包含扩展名]<%dim Url,FileName,File Url=split(request.servervariables(& ...
- 自动化CodeReview - ASP.NET Core请求参数验证
自动化CodeReview系列目录 自动化CodeReview - ASP.NET Core依赖注入 自动化CodeReview - ASP.NET Core请求参数验证 参数验证实现 在做服务端开发 ...
- Asp.Net Mvc 返回类型总结
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.We ...
- 对接第三方支付接口-获取http中的返回参数
这几天对接第三方支付接口,在回调通知里获取返回参数,有一家返回的json格式,请求参数可以从标准输入流中获取. //1.解析参数 , 读取请求内容 BufferedReader br; String ...
- 如何将ASP.NET MVC所有参数均自动设置为默认
今天看到CSDN上有个问题觉得有点意思:"可不可以ASP.NET MVC所有参数均自动设置为默认" public class HomeController : Controller ...
- 基于.Net Framework 4.0 Web API开发(2):ASP.NET Web APIs 参数传递方式详解
概述: ASP.NET Web API 的好用使用过的都知道,没有复杂的配置文件,一个简单的ApiController加上需要的Action就能工作.调用API过程中参数的传递是必须的,本节就来谈谈 ...
- ASP.NET MVC传送参数至服务端
ASP.NET MVC传送参数至服务端,前端与服务端的写法,你可以参考与采用适合你的需求的.当你只传递一两个参数也许觉得没有什么,如果一个方法中带的参数多的话,可以考虑model,前端可以考虑对象进行 ...
随机推荐
- Quartz Job执行后再更新Job的时间表达式....
CronTrigger 表达式最大循环时间是1年?那么实际应用中的提醒超过1年怎么办呢? 先看一下界面: 参数说明:提前提醒时间:1-60分钟.1-24小时.1-90天:重复提醒:每1-59分钟.每1 ...
- MyBatis的动态SQL详解-各种标签使用
MyBatis的动态SQL是基于OGNL表达式的,它可以帮助我们方便的在SQL语句中实现某些逻辑. MyBatis中用于实现动态SQL的元素主要有: if choose(when,otherwise) ...
- JAVA复制文件最快的算法
/** * 复制文件 * * @param srcFile * 源文件File * @param destDir * 目标目录File * @param newFileName * 新文件名 * @r ...
- zookeeper 伪分布式安装
1 下载zookeeper安装包 下载地址 http://apache.fayea.com/zookeeper/ 我下载的是zookeeper-3.4.6.tar.gz 2 解压缩 将zookeepe ...
- u-boot支持yaffs映像烧写的补丁
u-boot的nand flash驱动有两个版本,似乎是以u-boot1..5为分界点的,之前的版本使用的是自己写的nand flash驱动,而后面的版本使用的是linux内核中nand flash的 ...
- cesiumjs学习笔记之三——cesium-navigation插件 【转】
http://blog.csdn.net/Prepared/article/details/68940997?locationNum=10&fps=1 插件源码地址:https://githu ...
- Adapter 适配器模式 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- IE浏览器无法直接识别input的type="hidden"问题
原问题: <td class="formValue" id="in-checkbox"> <label class="checkbo ...
- PHP json_encode转换空数组为对象
问题描述: php返回json格式的数据,当返回数据的为数组,且key为字符串时,json化后将返回jsonObject,但是如果是空数组,有可能返回的就是jsonArray,数据结构不一致导致端解析 ...
- 更改Apache的首页
本机Apache的安装过程请见: Apache的首页是由/usr/local/httpd/conf/httpd.conf文件的DocumentRoot决定的. ...## DocumentRoot: ...