ADO.NET访问SQL Server调用存储过程带回参
| 1,ADO.NET访问SQL Server调用存储过程带回参 |
| 2,DatabaseDesign |
use northwind
go
--存储过程1
--插入一条商品 productname=芹菜 unitprice=2.3
create proc p_insert
@productname varchar(40),
@unitprice money
as
insert products(productname,unitprice)
values(@productname,@unitprice)
go
--执行
exec p_insert '芹菜',2.3 --存储过程2
--查全部商品
create proc p_selectall
as
select * from products
go
--执行
exec p_selectall --存储过程3
--根据商品编号=1,商品名称和单价
create proc p_selectbyid
@productid int, --入参
@productname varchar(40) output,--出参
@unitprice money output --出参
as
select @productname=productname,@unitprice=unitprice from products where productid=@productid --执行
declare @name varchar(40)
declare @price money
exec p_selectbyid @productname=@name output, @unitprice=@price output, @productid=1
select @name,@price
| 3,Code |
3.1,Program.cs
using System; using System.Data.SqlClient;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{ ////测试存储过程1
// SqlConnection con = new Com.Myt.DB.DBConnection().Con;
// SqlCommand com = con.CreateCommand(); // com.CommandText = "usp_insert";
// com.CommandType = System.Data.CommandType.StoredProcedure;//命令的类型是储存过程
// com.Parameters.Add(new SqlParameter("@productname", "苹果"));
// com.Parameters.Add(new SqlParameter("@unitprice", 200)); // con.Open();
// int count= com.ExecuteNonQuery(); // con.Close();
// Console.WriteLine("一共影响了"+count+"行"); ////存储过程2,测试返回结果集
//SqlConnection con = new Com.Myt.DB.DBConnection().Con;
//SqlCommand com = con.CreateCommand(); //com.CommandText = "usp_selectall";
//com.CommandType = System.Data.CommandType.StoredProcedure; //con.Open();
//SqlDataReader sdr = com.ExecuteReader();
//while (sdr.Read())
//{ // Console.WriteLine(sdr.GetString(0)+"\t"+sdr.GetDecimal(1));
//} //com.Clone(); //存储过程3,测试输出参数
//已知商品编号,查名称和单价
SqlConnection con = new Com.Myt.DB.DBConnection().Con;
SqlCommand com = con.CreateCommand(); com.CommandText = "usp_selectbyid";
com.CommandType = System.Data.CommandType.StoredProcedure; //配参,注意出参的配置
//入参
com.Parameters.Add(new SqlParameter("@productid", )); //出参
SqlParameter p1 = new SqlParameter("@productname", System.Data.SqlDbType.VarChar, );
SqlParameter p2 = new SqlParameter("@unitproduct", System.Data.SqlDbType.Decimal);
//标明输出方向
p1.Direction = System.Data.ParameterDirection.Output;
p2.Direction = System.Data.ParameterDirection.Output;
com.Parameters.Add(p1);
com.Parameters.Add(p2); con.Open(); com.ExecuteNonQuery();
con.Close(); Console.WriteLine(p1.Value+", "+p2.Value);
}
}
}
3.2,DBConnection.cs
| 4, |
![]() |
作者:ylbtech 出处:http://ylbtech.cnblogs.com/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 |
ADO.NET访问SQL Server调用存储过程带回参的更多相关文章
- ASP调用存储过程访问SQL Server
ASP调用存储过程访问SQL Server 2011-02-15 10:22:57 标签:asp 数据库 sQL 存储过程 Server ASP和存储过程(Stored Procedures)的文章 ...
- 原生的ado.net(访问sql server数据库)
本文介绍原生的ado.net(访问sql server数据库) 写在前面 数据库连接字符串 过时的写法 string str = "server=localhost;database=my_ ...
- 在易语言中调用MS SQL SERVER数据库存储过程方法总结
Microsoft SQL SERVER 数据库存储过程,根据其输入输出数据,笼统的可以分为以下几种情况或其组合:无输入,有一个或多个输入参数,无输出,直接返回(return)一个值,通过output ...
- SQL Server中的CLR编程——用.NET为SQL Server编写存储过程和函数
原文:SQL Server中的CLR编程--用.NET为SQL Server编写存储过程和函数 很早就知道可以用.NET为SQL Server2005及以上版本编写存储过程.触发器和存储过程的,不过之 ...
- sql server系统存储过程大全
关键词:sql server系统存储过程,mssql系统存储过程 xp_cmdshell --*执行DOS各种命令,结果以文本行返回. xp_fixeddrives --*查询各磁盘/分区可用空间 x ...
- 在sql server中建存储过程,如果需要参数是一个可变集合怎么处理?
在sql server中建存储过程,如果需要参数是一个可变集合的处理 原存储过程,@objectIds 为可变参数,比如 110,98,99 ALTER PROC [dbo].[Proc_totalS ...
- SQL Server中存储过程 比 直接运行SQL语句慢的原因
问题是存储过程的Parameter sniffing 在很多的资料中都描述说SQLSERVER的存储过程较普通的SQL语句有以下优点: 1. 存储过程只在创造时进行编译即可,以后每次执行存储过 ...
- JDBC连接SQL server与ADO.NET连接Sql Server对比
JDBC连接SQL server与ADO.NET连接Sql Server对比 1.JDBC连接SQL server 1)java方面目前有很多驱动能够驱动连接SQL servernet. 主流的有 ...
- SQL Server中存储过程比直接运行SQL语句慢的原因
原文:SQL Server中存储过程比直接运行SQL语句慢的原因 在很多的资料中都描述说SQLSERVER的存储过程较普通的SQL语句有以下优点: 1. 存储过程只在创造时进行编译即可,以 ...
随机推荐
- javascript加速运动
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...
- 【转载】SSH框架总结(将网上朋友写的给整合了下)
一.Struts 在没有学习SSH框架前,我们一般采用Jsp+javabean+servlet开发,这里就是MVC架构.而Struts其实就是替代了Servlet,我们知道Servlet在一般的开发中 ...
- [2-sat]HDOJ1824 Let's go home
中问题 题意略 和HDOJ 3062一样 这里 每个队员都有 选 和 不选 两种, 即 上篇所说的$x$和$x’$ 建图:队长(a)留下或者其余两名队员(b.c)同时留下 那么就是$a' \Right ...
- [topcoder]HappyLetterDiv2
http://community.topcoder.com/stat?c=problem_statement&pm=13245 就是有字符串,里面的字符可以随意两两消除,如果不等的话,那么最后 ...
- Xamarin.Android 入门之:Bind java的jar文件+Android显示gif图片
一.引言 在xamarin开发的时候,有时我们想要做一个功能,但是这个功能已经有人用java写好了,并且打包成了jar文件.那么我们可以直接把对方的jar文件拿过来用而不是重新用c#写代码. 关于bi ...
- Java学习笔记之:Java的变量
一.介绍 在Java语言中,所有的变量在使用前必须声明.声明变量的基本格式如下: type identifier [ = value][, identifier [= value] ...] ; 格式 ...
- 获取其它进程窗口中的状态栏信息(FindWindowEx GetWindowThreadProcessId OpenProcess SendMessage轮番轰炸)
HWND hWnd = ::FindWindow(NULL, _T("XXXXX")); if(NULL == hWnd) { return ; } HWND hWndStatus ...
- QEvent大全,有中文解释
简述 QEvent 类是所有事件类的基类,事件对象包含事件参数. Qt 的主事件循环(QCoreApplication::exec())从事件队列中获取本地窗口系统事件,将它们转化为 QEvents, ...
- JNIEnv解析
1.关于JNIEnv和JavaVM JNIEnv:线程相关的变量 JavaVM:是虚拟机在JNI层的代表, JNIEnv是一个与线程相关的变量,不同线程的JNIEnv彼此独立.JavaVM是虚拟机在J ...
- js中的this怎么理解
本博客供自己学习备忘, js中的this感觉很混乱,目前还有不少地方搞得不是很清楚,看到一篇不错的文章,先摘下来 this是Javascript语言的一个关键字它代表函数运行时,自动生成的一个内部对象 ...
