网络工作室暑假后第二次培训资料(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语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
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
相关文章
|
5月前
|
存储 SQL Go
sqlserver存储过程
sqlserver存储过程
|
5月前
|
存储 SQL 数据库
sqlserver中常用的几个存储过程
sqlserver中常用的几个存储过程
|
2月前
|
存储 SQL 数据库
如何使用 SQL Server 创建存储过程?
【8月更文挑战第31天】
72 0
|
2月前
|
SQL 机器学习/深度学习 开发工具
【机器学习 Azure Machine Learning】Azure Machine Learning 访问SQL Server 无法写入问题 (使用微软Python AML Core SDK)
【机器学习 Azure Machine Learning】Azure Machine Learning 访问SQL Server 无法写入问题 (使用微软Python AML Core SDK)
|
2月前
|
SQL 数据库 Windows
【应用服务 App Service】当使用EntityFrameWorkCore访问Sql Server数据库时,在Azure App Service会出现Cannot create a DbSet for ** because this type is not included in the model for the context的错误
【应用服务 App Service】当使用EntityFrameWorkCore访问Sql Server数据库时,在Azure App Service会出现Cannot create a DbSet for ** because this type is not included in the model for the context的错误
|
4月前
|
存储 机器学习/深度学习 SQL
SQLSERVER存储过程语法详解
SQLSERVER存储过程语法详解
167 0
|
5月前
|
存储 数据库
sqlserver------数据库的存储过程(练习)
sqlserver------数据库的存储过程(练习)
42 1
|
5月前
|
存储 SQL
SQL Server 存储过程 触发器 事务处理
SQL Server 存储过程 触发器 事务处理
|
12月前
|
存储 SQL 数据库
SQLServer存储过程的执行计划
SQLServer存储过程的执行计划
104 0
|
1月前
|
开发框架 前端开发 JavaScript
ASP.NET MVC 教程
ASP.NET 是一个使用 HTML、CSS、JavaScript 和服务器脚本创建网页和网站的开发框架。
28 7