网络工作室暑假后第二次培训资料(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
相关文章
|
1月前
|
安全 网络安全 数据安全/隐私保护
访问控制列表(ACL)是网络安全中的一种重要机制,用于定义和管理对网络资源的访问权限
访问控制列表(ACL)是网络安全中的一种重要机制,用于定义和管理对网络资源的访问权限。它通过设置一系列规则,控制谁可以访问特定资源、在什么条件下访问以及可以执行哪些操作。ACL 可以应用于路由器、防火墙等设备,分为标准、扩展、基于时间和基于用户等多种类型,广泛用于企业网络和互联网中,以增强安全性和精细管理。
234 7
|
2月前
|
存储 SQL 数据库
SQL Server存储过程的优缺点
【10月更文挑战第18天】SQL Server 存储过程具有提高性能、增强安全性、代码复用和易于维护等优点。它可以减少编译时间和网络传输开销,通过权限控制和参数验证提升安全性,支持代码共享和复用,并且便于维护和版本管理。然而,存储过程也存在可移植性差、开发和调试复杂、版本管理问题、性能调优困难和依赖数据库服务器等缺点。使用时需根据具体需求权衡利弊。
|
4月前
|
消息中间件 存储 Serverless
函数计算产品使用问题之怎么访问网络附加存储(NAS)存储模型文件
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
7天前
|
Kubernetes 网络协议 应用服务中间件
Kubernetes Ingress:灵活的集群外部网络访问的利器
《Kubernetes Ingress:集群外部访问的利器-打造灵活的集群网络》介绍了如何通过Ingress实现Kubernetes集群的外部访问。前提条件是已拥有Kubernetes集群并安装了kubectl工具。文章详细讲解了Ingress的基本组成(Ingress Controller和资源对象),选择合适的版本,以及具体的安装步骤,如下载配置文件、部署Nginx Ingress Controller等。此外,还提供了常见问题的解决方案,例如镜像下载失败的应对措施。最后,通过部署示例应用展示了Ingress的实际使用方法。
23 2
|
1月前
|
网络协议 安全 文件存储
动态DNS(DDNS)技术在当前网络环境中日益重要,它允许使用动态IP地址的设备通过固定域名访问
动态DNS(DDNS)技术在当前网络环境中日益重要,它允许使用动态IP地址的设备通过固定域名访问,即使IP地址变化,也能通过DDNS服务保持连接。适用于家庭网络远程访问设备及企业临时或移动设备管理,提供便捷性和灵活性。示例代码展示了如何使用Python实现基本的DDNS更新。尽管存在服务可靠性和安全性挑战,DDNS仍极大提升了网络资源的利用效率。
58 6
|
1月前
|
安全 网络安全 数据安全/隐私保护
访问控制列表(ACL)是网络安全管理的重要工具,用于定义和管理网络资源的访问权限。
访问控制列表(ACL)是网络安全管理的重要工具,用于定义和管理网络资源的访问权限。ACL 可应用于路由器、防火墙等设备,通过设定规则控制访问。其类型包括标准、扩展、基于时间和基于用户的ACL,广泛用于企业网络和互联网安全中,以增强安全性、实现精细管理和灵活调整。然而,ACL 也存在管理复杂和可能影响性能的局限性。未来,ACL 将趋向智能化和自动化,与其他安全技术结合,提供更全面的安全保障。
107 4
|
2月前
|
存储 SQL 缓存
SQL Server存储过程的优缺点
【10月更文挑战第22天】存储过程具有代码复用性高、性能优化、增强数据安全性、提高可维护性和减少网络流量等优点,但也存在调试困难、移植性差、增加数据库服务器负载和版本控制复杂等缺点。
132 1
|
2月前
|
存储 SQL 数据库
Sql Server 存储过程怎么找 存储过程内容
Sql Server 存储过程怎么找 存储过程内容
143 1
|
2月前
|
存储 SQL 数据库
SQL Server存储过程的优缺点
【10月更文挑战第17天】SQL Server 存储过程是预编译的 SQL 语句集,存于数据库中,可重复调用。它能提高性能、增强安全性和可维护性,但也有可移植性差、开发调试复杂及可能影响数据库性能等缺点。使用时需权衡利弊。
|
2月前
|
SQL 关系型数据库 BI
使用 Webshell 访问 SQL Server 主机并利用 SSRS
使用 Webshell 访问 SQL Server 主机并利用 SSRS