ExecuteNonQuary接收存储过程的输出类型的变量的值
2024-09-26 08:49:30
1、设置所调用的存储过程需要的参数
public decimal CreateOrder(string orderId, int userId, string address)
{
SqlParameter[] parameters = new SqlParameter[] {
new SqlParameter("@orderId",SqlDbType.NVarChar,),
new SqlParameter("@userId",SqlDbType.Int,),
new SqlParameter("@address",SqlDbType.NVarChar,),
new SqlParameter("@totalPrice",SqlDbType.Money)
};
parameters[].Value = orderId;
parameters[].Value = userId;
parameters[].Value = address;
//设置参数为输出参数,默认是InPut(输入参数)
parameters[].Direction = ParameterDirection.Output;
//调用执行存储过程的方法 DBUtility.DBHelperSQL.ExecuteNonQueryProc("usp_CreateOrder", parameters);
return Convert.ToDecimal(parameters[].Value);
}
关键是设置参数为输出参数,默认是InPut(输入参数) parameters[3].Direction = ParameterDirection.Output;
2、执行存储过程的方法
public static decimal ExecuteNonQueryProc(string cmdtext, params SqlParameter[] parameters)
{
using (SqlConnection conn = new SqlConnection(connstr))
{
conn.Open();
using (SqlCommand cmd = conn.CreateCommand())
{
//设置SqlCommand的类型为存储过程--StoredProcedure
cmd.CommandType = CommandType.StoredProcedure;
//这个的cmdText是存储过程名
cmd.CommandText = cmdtext;
//给这个存储过程传变量
cmd.Parameters.AddRange(parameters);
return cmd.ExecuteNonQuery();
}
}
}
一开始我有一个疑问,ExecuteNonQuary 方法,返回的是受影响的行数,怎么会把输出的参数传出来?
原来,当你把参数的 Direction 设置为 OutPut 后,把这个参数传给存储过程,那么在存储过程里,这个参数就被赋值了
然后在程序里,调用参数的 Value 属性(parameters[3].Value)得到参数的值
意思就是,这个存储过程只要成功执行了,那么你传进去的那个设置为 OutPut 的参数就已经被赋值了,不用理会 ExecuteNonQuary 方法返回的值,只管运行这个方法就好
最新文章
- Notes:SVG(3)---滤镜和渐变
- 定时备份SQL SERVER的数据库并且把备份文件复制到另外一台服务器
- CentOS下Apache开启Rewrite功能
- 12G服务器在BIOS中收集阵列卡日志(TTY日志)的方法
- HDU2222 Keywords Search
- sed 格式化输出df -h
- Javascript 5种方法实现过滤删除前后所有空格
- 解决ScrollView 与ListView共存显示不完全的问题
- jdk,j2ee,j2se,j2me的概念区别
- YY语音从4.0版本开始是基于Qt的开发过程,以及碰到的问题
- python的reduce()函数
- 每天一个JS 小demo之“随机”抽奖。主要知识点:Math函数,数组方法,递归
- DD XOFT虚拟键盘鼠标
- Want To Say Something
- swift 导入 .a 和 .h 文件
- canvas纯绘制雨伞、飞机、五角星、桃心,无逻辑
- docker容器启动设置固定IP
- java怎么实现统计一个字符串中字符出现的次数
- php 函数集锦
- php会话控制技术
热门文章
- NoSQL数据库技术特性解析之文档数据库
- jqgrid设置单元格数据
- 织梦安装过后出现";...www/include/templets/default/index.htm Not Found!";
- php $_server 整理
- 写给新手看的Flask+uwsgi+Nginx+Ubuntu部署教程
- Qt: 网络编程之UDP(理论+实例)
- Java获取程序或项目路径的常用方法
- Android AsynTask更新主界面
- 两个bootstrap插件bootstrap-select和bootstrap-paginator
- 解读sample2