博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
网络工作室暑假后第二次培训资料(SQLServer存储过程和ADO.NET访问存储过程)整理(二)...
阅读量:5843 次
发布时间:2019-06-18

本文共 4379 字,大约阅读时间需要 14 分钟。

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

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

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

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

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

(本代码示例所使用的存储过程,使用的是作者的上一篇博文所创建的存储过程,博文地址:,请大家参考)

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

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

1  public void ShowData1() 2         { 3             SqlConnection con = new SqlConnection(strConString); 4             //实例化SqlCommand对象,参数对象指定为所要访问存储过程的名称 5             SqlCommand cmd = new SqlCommand("select_activity", con); 6             //指定命令类型为存储过程 7             cmd.CommandType = CommandType.StoredProcedure; 8             //创建数据集 9             SqlDataAdapter adapter = new SqlDataAdapter(cmd);10             DataTable table = new DataTable();11             adapter.Fill(table);12 13             DataRow Dr = table.Rows[0];14             Response.Write(Dr[3].ToString());15 16         }

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

1 --创建带一个参数的存储过程2 create proc select_activity33 @id int4 as5 --该存储过程所执行的sql命令6 select * from T_Activity where id=@id;7 8 --调用select_activity存储过程9 exec select_activity3 5

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

1 ///  2         /// 调用带一个参数的存数过程 3         ///  4         public void ShowData2() 5         { 6             SqlConnection con = new SqlConnection(strConString); 7             SqlCommand cmd = new SqlCommand("select_activity3", con); 8             //指定命令类型为存储过程 9             cmd.CommandType = CommandType.StoredProcedure;10 11             //声明参数对象12             SqlParameter parameter = new SqlParameter();13             //指定参数名14             parameter.ParameterName = "@id";15             //指定参数的数据类型16             parameter.SqlDbType = SqlDbType.Int;17             //给参数赋值18             parameter.Value = 5;19             //将命令对象加入命令对象的参数集合中20             cmd.Parameters.Add(parameter);21             SqlDataAdapter adapter = new SqlDataAdapter(cmd);22             //创建DataTable对象23             DataTable table = new DataTable();24             adapter.Fill(table);25 26             DataRow Dr = table.Rows[0];27             Response.Write(Dr[3].ToString());28 29         }

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

1 ///  2         /// 调用带两个参数的参数数组 3         ///  4         public void ShowData3() 5         { 6             SqlConnection con = new SqlConnection(strConString); 7             SqlCommand cmd = new SqlCommand("select_activity1", con); 8             //指定命令类型为存储过程 9             cmd.CommandType = CommandType.StoredProcedure;10 11             //声明一个多维的参数数组12             SqlParameter[] parameter = 13             {14                 new SqlParameter("@id",SqlDbType.Int,4),15                 new SqlParameter("@activityName",SqlDbType.NVarChar,50)16             };17             parameter[0].Value = 5;18             //给参数赋值19             parameter[1].Value = "比武招亲";20             //将命令对象加入命令对象的参数集合中21             cmd.Parameters.AddRange(parameter);22             SqlDataAdapter adapter = new SqlDataAdapter(cmd);23             //创建DataTable对象24             DataTable table = new DataTable();25             adapter.Fill(table);26 27             DataRow Dr = table.Rows[0];28             Response.Write(Dr[3].ToString());29         }

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

1 ///  2         /// 调用带返回值的存储过程 3         ///  4         public void 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 14             parameter[0].Value = "比武招亲";15             //设定输出参数的输出方法向16             parameter[1].Direction = ParameterDirection.Output;17             cmd.Parameters.AddRange(parameter);18             SqlDataAdapter adapter = new SqlDataAdapter(cmd);19             DataTable table = new DataTable();20             adapter.Fill(table);21             Response.Write(Convert.ToInt32(cmd.Parameters[1].Value));22         }

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

转载于:https://www.cnblogs.com/yisuowushinian/archive/2012/10/07/2714238.html

你可能感兴趣的文章
藏地密码
查看>>
爬虫去重(只是讲了去重的策略,没有具体讲实现过程,反正就是云里雾里)...
查看>>
react中将px转化为rem或者vw
查看>>
8816
查看>>
avcodec_open2()分析
查看>>
何如获取单选框中某一个选中的值
查看>>
paip.输入法编程----删除双字词简拼
查看>>
QQ悬浮返回顶部
查看>>
MySQL建表语句的一些特殊字段
查看>>
《Unix环境高级编程》读书笔记 第8章-进程控制
查看>>
腾讯前端二面题目详解
查看>>
mascara-1
查看>>
Jquery Form表单取值
查看>>
Android API level 与version对应关系
查看>>
Team Name
查看>>
String类
查看>>
西门子_TDC_数据耦合小经验
查看>>
接口测试与postman
查看>>
LINQ To XML的一些方法
查看>>
[LeetCode] Copy List with Random Pointer
查看>>