本文的数据库用的是sql server自带数据Northwind

连接字符串:

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,4)

};

// 将参数类型设置为 返回值类型

parameters[0].Direction = ParameterDirection.ReturnValue;

// 添加参数

cmd.Parameters.Add(parameters[0]);

sqlconn.Open();

// 执行存储过程并返回影响的行数

Label1.Text = cmd.ExecuteNonQuery().ToString();

sqlconn.Close();

// 显示影响的行数和返回值

Label1.Text += "-" + parameters[0].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,4) ,

new SqlParameter("@CategoryName", SqlDbType.NVarChar,15) ,

};

// 设置参数类型

parameters[0].Direction = ParameterDirection.Output;  // 设置为输出参数

parameters[1].Value = "testCategoryName";

// 添加参数

cmd.Parameters.Add(parameters[0]);

cmd.Parameters.Add(parameters[1]);

sqlconn.Open();

// 执行存储过程并返回影响的行数

Label1.Text = cmd.ExecuteNonQuery().ToString();

sqlconn.Close();

// 显示影响的行数和输出参数

Label1.Text += "-" + parameters[0].Value.ToString() ;

存储过程Categoriestest4

CREATE PROCEDURE Categoriestest4

@id int output,

@CategoryName nvarchar(15)

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,4) ,

new SqlParameter("@CategoryName", SqlDbType.NVarChar,15) ,

new SqlParameter("rval", SqlDbType.Int,4)

};

// 设置参数类型

parameters[0].Direction = ParameterDirection.Output;       // 设置为输出参数

parameters[1].Value = "testCategoryName";                  // 给输入参数赋值

parameters[2].Direction = ParameterDirection.ReturnValue;  // 设置为返回值

// 添加参数

cmd.Parameters.Add(parameters[0]);

cmd.Parameters.Add(parameters[1]);

cmd.Parameters.Add(parameters[2]);

sqlconn.Open();

// 执行存储过程并返回影响的行数

Label1.Text = cmd.ExecuteNonQuery().ToString();

sqlconn.Close();

// 显示影响的行数,输出参数和返回值

Label1.Text += "-" + parameters[0].Value.ToString() + "-" + parameters[2].Value.ToString();

存储过程Categoriestest5

CREATE PROCEDURE Categoriestest5

@id int output,

@CategoryName nvarchar(15)

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,4) ,

new SqlParameter("@CategoryName", SqlDbType.NVarChar,15) ,

new SqlParameter("rval", SqlDbType.Int,4)                   // 返回值

};

// 设置参数类型

parameters[0].Direction = ParameterDirection.Output;        // 设置为输出参数

parameters[1].Value = "testCategoryName";                   // 给输入参数赋值

parameters[2].Direction = ParameterDirection.ReturnValue;   // 设置为返回值

// 添加参数

cmd.Parameters.Add(parameters[0]);

cmd.Parameters.Add(parameters[1]);

cmd.Parameters.Add(parameters[2]);

SqlDataAdapter dp = new SqlDataAdapter(cmd);

DataSet ds = new DataSet();

// 填充dataset

dp.Fill(ds);

// 显示结果集

GridView1.DataSource = ds.Tables[0];

GridView1.DataBind();

Label1.Text = "";

// 显示输出参数和返回值

Label1.Text +=  parameters[0].Value.ToString() + "-" + parameters[2].Value.ToString();

存储过程Categoriestest6

CREATE PROCEDURE Categoriestest6

@id int output,

@CategoryName nvarchar(15)

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[0];

GridView1.DataBind();

// 显示结果集2

GridView2.DataSource = ds.Tables[1];

GridView2.DataBind();

存储过程Categoriestest7

CREATE PROCEDURE Categoriestest7

AS

select * from Categories

select * from Categories

GO

转载于:https://www.cnblogs.com/gc2013/p/4119103.html

C#调用存储过程详解相关推荐

  1. C#调用存储过程详解(带返回值、参数输入输出等)

    C#调用存储过程详解(带返回值.参数输入输出等) 这篇文章主要介绍了C#调用存储过程的方法,结合实例形式详细分析了各种常用的存储过程调用方法,包括带返回值.参数输入输出等,需要的朋友可以参考下 本文实 ...

  2. ASP调用存储过程详解。

    ASP与存储过程(Stored Procedures)的文章不少,但是我怀疑作者们是否真正实践过.我在初学时查阅过大量相关资料,发现其中提供的很多方法实际操作起来并不是那么回事.对于简单的应用,这些资 ...

  3. c oracle存储过程返回值,C#调用存储过程详解(带返回值、参数输入输出等)

    本文实例讲述了C#调用存储过程的方法.分享给大家供大家参考,具体如下: CREATE PROCEDURE [dbo].[GetNameById] @studentid varchar(8), @stu ...

  4. MySQL存储过程详解 mysql 存储过程

    mysql存储过程详解 1.      存储过程简介   我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的S ...

  5. mysql存储过程详解[转]

    mysql存储过程详解[转] 1.      存储过程简介   我们常用的操作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功 ...

  6. Oracle 存储过程详解(上)

    目录 一.存储过程与存储函数的定义 二.创建 / 执行存储过程所需的权限 1.resource权限 2.create.execute procedure权限 三.创建 / 执行存储过程 四.变量与参数 ...

  7. mysql存储过程按区间_针对新手的MYSQL存储过程详解_CSDN_ChenF的博客-CSDN博客

    原文作者:橘左京i 原文标题:针对新手的MYSQL存储过程详解 发布时间:2021-02-22 10:03:18 一位爱好技术的橘右京的哥哥橘左京 前言:什么是存储过程?存储过程就像是一个接口,可以直 ...

  8. python调用包的路径_Python3 模块、包调用路径详解

    如下所示: ''' 以下代码均为讲解,不能实际操作 ''' ''' 博客园 Infi_chu ''' ''' 模块的优点: 1.高可维护性 2.可以大大减少编写的代码量 模块一共有三种: 1.Pyth ...

  9. 【虚幻引擎UE】UE5 三种模式调用API详解(案例基于免费Varest插件)

    [虚幻引擎UE]UE5 三种模式调用API详解(案例基于免费Varest插件) 想通过UE5 调用API实现GET和POST, 可以通过自己编写C++方法, 或基于相关HTTP请求插件, 如Vares ...

最新文章

  1. rtklib 天线相位中心_基于传输线匹配理论的OAM透射阵天线设计
  2. Python中的赋值、引用和深浅拷贝
  3. LOJ#6281. 数列分块入门 5
  4. 科大星云诗社动态20210519
  5. iOS: 在代码中使用Autolayout (2) – intrinsicContentSize和Con
  6. Android 7.0 Nougat介绍
  7. 可以种树吗_基本农田能干什么?种树?建房?搞种养殖?哪种可以?
  8. Oracle的取整和四舍五入函数——floor,round,ceil,trunc使用说明
  9. Ubuntu的超宽屏支持2560*1080
  10. netperf网卡测速ubuntu linux 环境下测硬件网卡速度
  11. 软件开发 | 如何写软件开发文档
  12. 软路由虚拟服务器,VMware虚拟机安装软路由(OpenWrt)详细教程
  13. NanoPi NEO小试牛刀(一)
  14. 【AI系列文章推送一】什么是人工智能?
  15. 苹果三代耳机_p360 AirPods Pro 苹果三代耳机
  16. 手机注册邮箱格式是什么?电子邮箱地址怎么填?
  17. Python 处理POS标签
  18. 用Python实现火爆全网的「蚂蚁呀嘿」!这也太恶搞了吧!
  19. 【半导体先进工艺制程技术系列】SOI技术(上)
  20. 服务器装系统卡LOGO,使用U盘安装Linux系统时卡在logo界面的解决办法

热门文章

  1. 计算机组成原理平均cpi怎么算_2020考研 | 计算机统考408院校盘点,408考试内容难易分析...
  2. 算法可以申请专利么_Ta 在假笑么?这个识别算法可以鉴定
  3. 去哪儿-07-city-router
  4. 使用递归法求阶乘(C语言)
  5. Multi-thread--C++11中std::lock_guard的使用
  6. Ubuntu16.04下codeblocks16.01安装,适用于不同的架构
  7. Unity 导出切片精灵
  8. java从mysql中查数据_java怎么从数据库中查询数据并输出
  9. 彻底删除 mysql 5.7_Ubuntu16.04彻底删除MySQL5.7
  10. android自定义tab的分隔符,TabView中的分隔符