网络工作室暑假后第二次培训资料(SQLServer存储过程和ADO.NET访问存储过程)整理(二)

本文涉及的产品
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
云数据库 RDS SQL Server,独享型 2核4GB
简介:

使用ADO,NET来调用存储过程可以分为一下4种方式

1)调用不带参数的存储过程

2)调用带一个参数的存储过程

3)调用带多个参数的存储过程

4)调用带输出参数的存储过程

(本代码示例所使用的存储过程,使用的是作者的上一篇博文所创建的存储过程,博文地址:http://yisuowushinian.blog.51cto.com/4241271/1016524 ,请大家参考)

一,ADO.NET调用不带参数的存储过程,使用的存储过程是上篇博文示例1-1创建的存储过程

具体的调用代码1-1演示如下:


 
  1. /// <summary>

  2. /// 调用不带参数的存储过程

  3. /// 调用不带参数的存储过程的意义不大,一般的查询都是有条件的查询

  4. /// </summary>

  5. publicvoid ShowData1()

  6.       {

  7.           SqlConnection con = new SqlConnection(strConString);

  8. //实例化SqlCommand对象,参数对象指定为所要访问存储过程的名称

  9.           SqlCommand cmd = new SqlCommand("select_activity", con);

  10. //指定命令类型为存储过程

  11.           cmd.CommandType = CommandType.StoredProcedure;

  12. //创建数据集

  13.           SqlDataAdapter adapter = new SqlDataAdapter(cmd);

  14.           DataTable table = new DataTable();

  15.           adapter.Fill(table);

  16.           DataRow Dr = table.Rows[0];

  17.           Response.Write(Dr[3].ToString());

  18.       }

二,因为上篇博文没有创建只有一个参数的存储过程,创建过程如下:

 
  1. --创建带一个参数的存储过程

  2. create proc select_activity3

  3. @id int

  4. as

  5. --该存储过程所执行的sql命令

  6. select * from T_Activity where id=@id;

  7. --调用select_activity存储过程

  8. exec select_activity3 5

ADO.NET调用带一个参数的存储过程的示例1-2代码如下:

 
  1. /// <summary>

  2. /// 调用带一个参数的存数过程

  3. /// </summary>

  4. publicvoid ShowData2()

  5.        {

  6.            SqlConnection con = new SqlConnection(strConString);

  7.            SqlCommand cmd = new SqlCommand("select_activity3", con);

  8. //指定命令类型为存储过程

  9.            cmd.CommandType = CommandType.StoredProcedure;

  10. //声明参数对象

  11.            SqlParameter parameter = new SqlParameter();

  12. //指定参数名

  13.            parameter.ParameterName = "@id";

  14. //指定参数的数据类型

  15.            parameter.SqlDbType = SqlDbType.Int;

  16. //给参数赋值

  17.            parameter.Value = 5;

  18. //将命令对象加入命令对象的参数集合中

  19.            cmd.Parameters.Add(parameter);

  20.            SqlDataAdapter adapter = new SqlDataAdapter(cmd);

  21. //创建DataTable对象

  22.            DataTable table = new DataTable();

  23.            adapter.Fill(table);

  24.            DataRow Dr = table.Rows[0];

  25.            Response.Write(Dr[3].ToString());

  26.        }

三,ADO.NET调用带多个参数的存储过程,本示例1-3代码以两个参数的作为演示,更多的参数,可以参照该示例,使用的存储过程为上篇博文的示例1-2


 
  1. /// <summary>

  2. /// 调用带两个参数的参数数组

  3. /// </summary>

  4. publicvoid ShowData3()

  5.        {

  6.            SqlConnection con = new SqlConnection(strConString);

  7.            SqlCommand cmd = new SqlCommand("select_activity1", con);

  8. //指定命令类型为存储过程

  9.            cmd.CommandType = CommandType.StoredProcedure;

  10. //声明一个多维的参数数组

  11.            SqlParameter[] parameter =  

  12.            {

  13. new SqlParameter("@id",SqlDbType.Int,4),

  14. new SqlParameter("@activityName",SqlDbType.NVarChar,50)

  15.            };

  16.            parameter[0].Value = 5;

  17. //给参数赋值

  18.            parameter[1].Value = "比武招亲";

  19. //将命令对象加入命令对象的参数集合中

  20.            cmd.Parameters.AddRange(parameter);

  21.            SqlDataAdapter adapter = new SqlDataAdapter(cmd);

  22. //创建DataTable对象

  23.            DataTable table = new DataTable();

  24.            adapter.Fill(table);

  25.            DataRow Dr = table.Rows[0];

  26.            Response.Write(Dr[3].ToString());

  27.        }

四,ADO.NET访问带输出参数的存储过程,本示例1-4代码以输入一个且输出一个参数的作为演示,更多的参数,可以参照该示例,使用的存储过程为上篇博文的示例1-4


 
  1. /// <summary>

  2. /// 调用带返回值的存储过程

  3. /// </summary>

  4. publicvoid ShowData4()

  5.        {

  6.            SqlConnection con = new SqlConnection(strConString);

  7.            SqlCommand cmd = new SqlCommand("select_MathResult", con);

  8.            cmd.CommandType = CommandType.StoredProcedure;

  9.            SqlParameter[] parameter = {

  10. new SqlParameter("@activityName",SqlDbType.NVarChar,50),

  11. new SqlParameter("@result",SqlDbType.Int,4)

  12.                                       };

  13.            parameter[0].Value = "比武招亲";

  14. //设定输出参数的输出方法向

  15.            parameter[1].Direction = ParameterDirection.Output;

  16.            cmd.Parameters.AddRange(parameter);

  17.            SqlDataAdapter adapter = new SqlDataAdapter(cmd);

  18.            DataTable table = new DataTable();

  19.            adapter.Fill(table);

  20.            Response.Write(Convert.ToInt32(cmd.Parameters[1].Value));

  21.        }

这样就完成了ADO.NET对Sql Server存储过程的访问的所有示例。因为在整理的时候发现内容太多,无法在一篇博文完成,只能分为若干篇。请大家继续关注我的博客,下次将为大家更新,Sql Server的表连接查询,多表查询,分页,等知识。





     本文转自yisuowushinian 51CTO博客,原文链接:http://blog.51cto.com/yisuowushinian/1016527,如需转载请自行联系原作者



相关实践学习
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS&nbsp;SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/sqlserver
相关文章
|
2月前
|
存储 SQL Go
sqlserver存储过程
sqlserver存储过程
|
2月前
|
存储 SQL 数据库
sqlserver中常用的几个存储过程
sqlserver中常用的几个存储过程
|
2月前
|
机器学习/深度学习 分布式计算 资源调度
【社交网络分析】课程考试复盘 + 相关资料补充
【社交网络分析】课程考试复盘 + 相关资料补充
71 0
|
9月前
|
存储
SQLServer存储过程中事务的创建
SQLServer存储过程中事务的创建
52 0
|
9月前
|
存储
SQLServer分页获取数据的存储过程
SQLServer分页获取数据的存储过程
29 0
|
5天前
|
存储 机器学习/深度学习 SQL
SQLSERVER存储过程语法详解
SQLSERVER存储过程语法详解
17 0
|
2月前
|
存储 数据库
sqlserver------数据库的存储过程(练习)
sqlserver------数据库的存储过程(练习)
21 1
|
8月前
|
安全 物联网 云栖大会
2023云栖大会 | 云网络技术Session主题资料和视频回放归档(已完结)
2023年10月31日,杭州,一年一度的云栖大会如期而至;阿里云飞天洛神云网络作为阿里云计算的连接底座,是飞天云操作系统的核心组件,致力于为上云企业提供高可靠、高性能、高弹性、智能的连接服务。本次云栖,云网络产品线也带来全系列产品升级,以及创新技术重磅解读,共包括1个Keynote,22个Session,包括产品发布、Deep Dive、最佳实践、客户分享、开放生态等多维度全面解读云网络进展。
1766 7
|
2月前
|
存储 SQL
SQL Server 存储过程 触发器 事务处理
SQL Server 存储过程 触发器 事务处理
|
9月前
|
存储 SQL 数据库
SQLServer存储过程的执行计划
SQLServer存储过程的执行计划
84 0

热门文章

最新文章