网络工作室暑假后第二次培训资料(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
相关文章
|
25天前
|
存储 SQL 数据库
SQL Server存储过程的优缺点
【10月更文挑战第18天】SQL Server 存储过程具有提高性能、增强安全性、代码复用和易于维护等优点。它可以减少编译时间和网络传输开销,通过权限控制和参数验证提升安全性,支持代码共享和复用,并且便于维护和版本管理。然而,存储过程也存在可移植性差、开发和调试复杂、版本管理问题、性能调优困难和依赖数据库服务器等缺点。使用时需根据具体需求权衡利弊。
|
20天前
|
存储 SQL 缓存
SQL Server存储过程的优缺点
【10月更文挑战第22天】存储过程具有代码复用性高、性能优化、增强数据安全性、提高可维护性和减少网络流量等优点,但也存在调试困难、移植性差、增加数据库服务器负载和版本控制复杂等缺点。
|
22天前
|
SQL XML 关系型数据库
入门指南:利用NHibernate简化.NET应用程序的数据访问
【10月更文挑战第13天】NHibernate是一个面向.NET的开源对象关系映射(ORM)工具,它提供了从数据库表到应用程序中的对象之间的映射。通过使用NHibernate,开发者可以专注于业务逻辑和领域模型的设计,而无需直接编写复杂的SQL语句来处理数据持久化问题。NHibernate支持多种数据库,并且具有高度的灵活性和可扩展性。
37 2
|
23天前
|
存储 SQL 数据库
Sql Server 存储过程怎么找 存储过程内容
Sql Server 存储过程怎么找 存储过程内容
24 1
|
26天前
|
存储 SQL 数据库
SQL Server存储过程的优缺点
【10月更文挑战第17天】SQL Server 存储过程是预编译的 SQL 语句集,存于数据库中,可重复调用。它能提高性能、增强安全性和可维护性,但也有可移植性差、开发调试复杂及可能影响数据库性能等缺点。使用时需权衡利弊。
|
1月前
|
存储 SQL 数据库
SQL Server 临时存储过程及示例
SQL Server 临时存储过程及示例
49 3
|
20天前
|
网络协议 Ubuntu 前端开发
好好的容器突然起不来,经定位是容器内无法访问外网了?测试又说没改网络配置,该如何定位网络问题
本文记录了一次解决前端应用集成到主应用后出现502错误的问题。通过与测试人员的沟通,最终发现是DNS配置问题导致的。文章详细描述了问题的背景、沟通过程、解决方案,并总结了相关知识点和经验教训,帮助读者学习如何分析和定位网络问题。
|
2月前
|
SQL 存储 关系型数据库
C#一分钟浅谈:使用 ADO.NET 进行数据库访问
【9月更文挑战第3天】在.NET开发中,与数据库交互至关重要。ADO.NET是Microsoft提供的用于访问关系型数据库的类库,包含连接数据库、执行SQL命令等功能。本文从基础入手,介绍如何使用ADO.NET进行数据库访问,并提供示例代码,同时讨论常见问题及其解决方案,如连接字符串错误、SQL注入风险和资源泄露等,帮助开发者更好地利用ADO.NET提升应用的安全性和稳定性。
215 6
|
3月前
|
存储 SQL 数据库
如何使用 SQL Server 创建存储过程?
【8月更文挑战第31天】
129 0
|
6天前
|
存储 安全 算法
网络安全与信息安全:漏洞、加密技术及安全意识的重要性
如今的网络环境中,网络安全威胁日益严峻,面对此类问题,除了提升相关硬件的安全性、树立法律法规及行业准则,增强网民的网络安全意识的重要性也逐渐凸显。本文梳理了2000年以来有关网络安全意识的研究,综述范围为中国知网中篇名为“网络安全意识”的期刊、硕博论文、会议论文、报纸。网络安全意识的内涵是在“网络安全”“网络安全风险”等相关概念的发展中逐渐明确并丰富起来的,但到目前为止并未出现清晰的概念界定。此领域内的实证研究主要针对网络安全意识现状与问题,其研究对象主要是青少年。网络安全意识教育方面,很多学者总结了国外的成熟经验,但在具体运用上仍缺乏考虑我国的实际状况。 内容目录: 1 网络安全意识的相关