网络工作室暑假后第二次培训资料(SQLServer存储过程和ADO.NET访问存储过程)整理(二)-阿里云开发者社区

开发者社区> 技术小胖子> 正文

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

简介:
+关注继续查看

使用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,如需转载请自行联系原作者



版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
ASP.NET MVC 音乐商店 - 4. 数据访问
转自 http://www.cnblogs.com/haogj/archive/2011/11/13/2246884.html 上一次,我们使用了模拟的数据从控制器发送到视图模板。现在,我们开始使用真正的数据 库,在这个教程中,我们将指导如何使用 SQL Server Compact 版的数据库,它经常被称为 SQL CE, 来作为数据库引擎,SQL CE 是一个免费的,嵌入式的,基于文件的数据库系统,不需要任何的安装或者配置,很适合本地的开发使用。
1109 0
privoxy自动请求转发到多个网络
有些时候我们需要通过不同的代理访问不同资源,比如某些ip或域名走本地网络,某些ip或域名走不可描述的代理等。当然这只是举个栗子! 我要解决的问题是:我的内网机器没有internet访问权限,但是我的应用程序有部分请求是要访问intranet网络,而部分请求要访问internet网络。
1335 0
支持Ajax跨域访问ASP.NET Web Api 2(Cors)的简单示例教程演示
随着深入使用ASP.NET Web Api,我们可能会在项目中考虑将前端的业务分得更细。比如前端项目使用Angularjs的框架来做UI,而数据则由另一个Web Api 的网站项目来支撑。注意,这里是两个Web网站项目了,前端项目主要负责界面的呈现和一些前端的相应业务逻辑处理,而Web Api则负责提供数据。
1062 0
【ASP.NET】判断访问网站的客户端是PC还是手机
原文:【ASP.NET】判断访问网站的客户端是PC还是手机 主要就是通过客户端传递的User-agent来判断访问网站的客户端是PC还是手机,.NET中就是Request.ServerVariables["HTTP_USER_AGENT"]。
1107 0
21119
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载