.net调用存储过程详解(转载)
本文的数据库用的是sql server
连接字符串
string conn = ConfigurationManager.ConnectionStrings["NorthwindConnectionString"].ConnectionString;
confige文件
<connectionStrings>
<add name="NorthwindConnectionString" connectionString="Data Source=.;Initial Catalog=Northwind;Integrated Security=True" providerName="System.Data.SqlClient"/>
</connectionStrings>
1. 只返回单一记录集的存储过程
SqlConnection sqlconn = new SqlConnection(conn);
SqlCommand cmd = new SqlCommand();
// 设置sql连接
cmd.Connection = sqlconn;
// 如果执行语句
cmd.CommandText = "Categoriestest1";
// 指定执行语句为存储过程
cmd.CommandType = CommandType.StoredProcedure; SqlDataAdapter dp = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
// 填充dataset
dp.Fill(ds);
// 以下是显示效果
GridView1.DataSource = ds;
GridView1.DataBind();
存储过程Categoriestest1
CREATE PROCEDURE Categoriestest1
AS
select *
from Categories
GO
2. 没有输入输出的存储过程
SqlConnection sqlconn = new SqlConnection(conn);
SqlCommand cmd = new SqlCommand(); cmd.Connection = sqlconn;
cmd.CommandText = "Categoriestest2";
cmd.CommandType = CommandType.StoredProcedure;
sqlconn.Open();
// 执行并显示影响行数
Label1.Text = cmd.ExecuteNonQuery().ToString();
sqlconn.Close();
存储过程Categoriestest2
CREATE PROCEDURE Categoriestest2 AS
insert into dbo.Categories
(CategoryName,[Description],[Picture])
values ('test1','test1',null)
GO
3. 有返回值的存储过程
SqlConnection sqlconn = new SqlConnection(conn);
SqlCommand cmd = new SqlCommand();
cmd.Connection = sqlconn;
cmd.CommandText = "Categoriestest3";
cmd.CommandType = CommandType.StoredProcedure;
// 创建参数
IDataParameter[] parameters = {
new SqlParameter("rval", SqlDbType.Int,)
};
// 将参数类型设置为 返回值类型
parameters[].Direction = ParameterDirection.ReturnValue;
// 添加参数
cmd.Parameters.Add(parameters[]); sqlconn.Open();
// 执行存储过程并返回影响的行数
Label1.Text = cmd.ExecuteNonQuery().ToString();
sqlconn.Close();
// 显示影响的行数和返回值
Label1.Text += "-" + parameters[].Value.ToString() ;
存储过程Categoriestest3
CREATE PROCEDURE Categoriestest3
AS
insert into dbo.Categories
(CategoryName,[Description],[Picture])
values ('test1','test1',null)
return @@rowcount
GO
4. 有输入参数和输出参数的存储过程
SqlConnection sqlconn = new SqlConnection(conn);
SqlCommand cmd = new SqlCommand();
cmd.Connection = sqlconn;
cmd.CommandText = "Categoriestest4";
cmd.CommandType = CommandType.StoredProcedure;
// 创建参数
IDataParameter[] parameters = {
new SqlParameter("@Id", SqlDbType.Int,) ,
new SqlParameter("@CategoryName", SqlDbType.NVarChar,) ,
};
// 设置参数类型
parameters[].Direction = ParameterDirection.Output; // 设置为输出参数
parameters[].Value = "testCategoryName";
// 添加参数
cmd.Parameters.Add(parameters[]);
cmd.Parameters.Add(parameters[]); sqlconn.Open();
// 执行存储过程并返回影响的行数
Label1.Text = cmd.ExecuteNonQuery().ToString();
sqlconn.Close();
// 显示影响的行数和输出参数
Label1.Text += "-" + parameters[].Value.ToString() ;
存储过程Categoriestest4
CREATE PROCEDURE Categoriestest4
@id int output,
@CategoryName nvarchar()
AS
insert into dbo.Categories
(CategoryName,[Description],[Picture])
values (@CategoryName,'test1',null)
set @id = @@IDENTITY
GO
5. 同时具有返回值、输入参数、输出参数的存储过程
SqlConnection sqlconn = new SqlConnection(conn);
SqlCommand cmd = new SqlCommand();
cmd.Connection = sqlconn;
cmd.CommandText = "Categoriestest5";
cmd.CommandType = CommandType.StoredProcedure;
// 创建参数
IDataParameter[] parameters = {
new SqlParameter("@Id", SqlDbType.Int,) ,
new SqlParameter("@CategoryName", SqlDbType.NVarChar,) ,
new SqlParameter("rval", SqlDbType.Int,)
};
// 设置参数类型
parameters[].Direction = ParameterDirection.Output; // 设置为输出参数
parameters[].Value = "testCategoryName"; // 给输入参数赋值
parameters[].Direction = ParameterDirection.ReturnValue; // 设置为返回值
// 添加参数
cmd.Parameters.Add(parameters[]);
cmd.Parameters.Add(parameters[]);
cmd.Parameters.Add(parameters[]); sqlconn.Open();
// 执行存储过程并返回影响的行数
Label1.Text = cmd.ExecuteNonQuery().ToString();
sqlconn.Close();
// 显示影响的行数,输出参数和返回值
Label1.Text += "-" + parameters[].Value.ToString() + "-" + parameters[].Value.ToString();
存储过程Categoriestest5
CREATE PROCEDURE Categoriestest5
@id int output,
@CategoryName nvarchar()
AS
insert into dbo.Categories
(CategoryName,[Description],[Picture])
values (@CategoryName,'test1',null)
set @id = @@IDENTITY
return @@rowcount
GO
6. 同时返回参数和记录集的存储过程
SqlConnection sqlconn = new SqlConnection(conn);
SqlCommand cmd = new SqlCommand();
cmd.Connection = sqlconn;
cmd.CommandText = "Categoriestest6";
cmd.CommandType = CommandType.StoredProcedure;
// 创建参数
IDataParameter[] parameters = {
new SqlParameter("@Id", SqlDbType.Int,) ,
new SqlParameter("@CategoryName", SqlDbType.NVarChar,) ,
new SqlParameter("rval", SqlDbType.Int,) // 返回值
};
// 设置参数类型
parameters[].Direction = ParameterDirection.Output; // 设置为输出参数
parameters[].Value = "testCategoryName"; // 给输入参数赋值
parameters[].Direction = ParameterDirection.ReturnValue; // 设置为返回值
// 添加参数
cmd.Parameters.Add(parameters[]);
cmd.Parameters.Add(parameters[]);
cmd.Parameters.Add(parameters[]); SqlDataAdapter dp = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
// 填充dataset
dp.Fill(ds);
// 显示结果集
GridView1.DataSource = ds.Tables[];
GridView1.DataBind(); Label1.Text = "";
// 显示输出参数和返回值
Label1.Text += parameters[].Value.ToString() + "-" + parameters[].Value.ToString();
存储过程Categoriestest6
CREATE PROCEDURE Categoriestest6
@id int output,
@CategoryName nvarchar()
AS
insert into dbo.Categories
(CategoryName,[Description],[Picture])
values (@CategoryName,'test1',null)
set @id = @@IDENTITY
select * from Categories
return @@rowcount
GO
7. 返回多个记录集的存储过程
SqlConnection sqlconn = new SqlConnection(conn);
SqlCommand cmd = new SqlCommand(); cmd.Connection = sqlconn;
cmd.CommandText = "Categoriestest7";
cmd.CommandType = CommandType.StoredProcedure; SqlDataAdapter dp = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
// 填充dataset
dp.Fill(ds);
// 显示结果集1
GridView1.DataSource = ds.Tables[];
GridView1.DataBind();
// 显示结果集2
GridView2.DataSource = ds.Tables[];
GridView2.DataBind();
存储过程Categoriestest7
CREATE PROCEDURE Categoriestest7
AS
select * from Categories
select * from Categories
GO
本篇转载自:http://www.cnblogs.com/clhed/articles/1269415.html
.net调用存储过程详解(转载)的更多相关文章
- asp.net调用存储过程详解
摘要 存储过程的调用在B/S系统中用的很多.传统的调用方法不仅速度慢,而且代码会随着存储过程的增多不断膨胀,难以维护.新的方法在一定程度上解决了这些问题. 关键词 ASP.NET:存储过程 在使用 ...
- C#调用存储过程详解
连接字符串: string conn = ConfigurationManager.ConnectionStrings["NorthwindConnectionString"].C ...
- C#调用存储过程详解(带返回值、参数输入输出等)
CREATE PROCEDURE [dbo].[GetNameById] @studentid varchar(8), @studentname nvarchar(50) OUTPUT AS BEGI ...
- GridView内容详解(转载)
GridView内容详解(转载) GridView是ASP.NET界面开发中的一个重要的控件,对GridView使用的熟练程度直接影响软件开发的进度及功能的实现.(车延禄)GridView的主要新特性 ...
- mysql存储过程详解
mysql存储过程详解 1. 存储过程简介 我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的S ...
- mysql 存储过程详解 存储过程
mysql存储过程详解 1. 存储过程简介 我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成 ...
- 【VB技巧】VB静态调用与动态调用dll详解
本文“[VB技巧]VB静态调用与动态调用dll详解”,来自:Nuclear'Atk 网络安全研究中心,本文地址:http://lcx.cc/?i=489,转载请注明作者及出处! [[请注意]]:在以下 ...
- MySQL存储过程详解 mysql 存储过程
原文地址:MySQL存储过程详解 mysql 存储过程作者:王者佳暮 mysql存储过程详解 1. 存储过程简介 我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储 ...
- MySQL存储过程详解 mysql 存储过程(二)
mysql存储过程详解 1. 存储过程简介 我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL ...
随机推荐
- C# 键值对的类型
一 C# 键值对类有以下类: ① IDictionary<string, Object> idc = new Dictionary<string, object>(); ...
- NYOJ 27.水池数目-DFS求连通块
水池数目 时间限制:3000 ms | 内存限制:65535 KB 难度:4 描述 南阳理工学院校园里有一些小河和一些湖泊,现在,我们把它们通一看成水池,假设有一张我们学校的某处的地图,这个地 ...
- IDEA - 设置所有文件编码为UTF-8格式
问题一: File->Settings->Editor->File Encodings 问题二: File->Other Settings->Default Settin ...
- Codeforces 482B Interesting Array(线段树区间更新)
题目链接 Interesting Array 区间更新.然后对于每一个约数重新求一遍区间的&值,不符合就跳出. #include <bits/stdc++.h> using nam ...
- 2016北京集训测试赛(十六)Problem A: 任务安排
Solution 这道题告诉我们, 不能看着数据范围来推测正解的时间复杂度. 事实证明, 只要常数足够小, \(5 \times 10^6\)也是可以跑\(O(n \log n)\)算法的!!! 这道 ...
- UVA 11100 The Trip, 2007 水题一枚
题目链接:UVA - 11100 题意描述:n个旅行箱,形状相同,尺寸不同,尺寸小的可以放在尺寸大的旅行箱里.现在要求露在最外面的旅行箱的数量最少的同时满足一个旅行箱里放的旅行箱的数量最少.求出这样满 ...
- x86服务器中网络性能分析与调优 转
x86服务器中网络性能分析与调优 2017-04-05 巨枫 英特尔精英汇 [OpenStack 易经]是 EasyStack 官微在2017年新推出的技术品牌,将原创技术干货分享给您,本期我们讨论 ...
- Protobuf C#
// ProtoBuf序列化 using(var file = System.IO.File.Create("Person.bin")) ...
- win7 32位用pyinstaller打包Python和相关html文件 成exe
http://tieba.baidu.com/p/3060401749?traceid= 安装 pyinstaller 然后 第一步你的脚本里面要做相应处理,添加一个函数:def resource_p ...
- CentOS6.5环境配置笔记
CentOS6.5环境配置笔记 一.概述 服务器系统重装,配置应用运行环境 CentOS6.5 x64 二.修改密码 重新设置登录密码 $passwd 或 $passwd root 三.配置端口号及防 ...