整理了一下存储过程在项目中的运用,防止遗忘,便记录于此!存储过程(Stored
Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中。用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象,任何一个设计良好的数据库应用程序都应该用到存储过程。总的来说,存储过程具有以下一些优点:
◆存储过程允许标准组件式编程
◆存储过程能够实现较快的执行速度
◆存储过程能够减少网络流量
◆存储过程可被作为一种安全机制来充分利用
本文作者将向大家介绍.NET数据库应用程序中存储过程的应用,以及如何将它与ADO.NET中的SqlDataAdapter对象、DataSet对象等结合使用以提高.NET数据库应用程序的总体性能。
创建一个简单的存储过程
1.不带参数的查询的存储过程
CREATEPROC
[dbo].[SelectUsers]
AS
begin
SELECT * from dbo.FMS_Users
end
执行下一句即可得到结果:
exec
SelectUsers
创建以上存储过程后,保存之。保存完毕,与该存储过程相对应的节点就会出现在服务器资源管理器中。同时请注意代码编辑窗口中的CREATE关键字变为ALTER关键字了,该关键字是用于更改任何现有的存储过程的。要运行上述存储过程,只要点击其节点并在右键弹出菜单中
执行存储过程”,运行的结果图示如下:
好了 接下来在IDE环境中去调用:
写一个方法在合适的地方调用即可
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
private void Stroedprocedure()
{
string con=System.Configuration.ConfigurationManager.ConnectionStrings[ "consql" ].ToString();
SqlConnection
conn= new SqlConnection(con);
conn.Open();
SqlCommand
cmd = new SqlCommand( "SelectUsers" ,conn);
SqlDataAdapter
da = new SqlDataAdapter();
da.SelectCommand
= cmd;
DataTable
ds = new DataTable();
da.Fill(ds);
GridView1.DataSource
= ds;
GridView1.DataBind();
}
|
ok 已经完成了无参数的存储过程的实例调用!
第二有参数的存储过程的调用 (道理一样)
创建存储过程语句
create proc [dbo].[SelectParUsers]
(
@id int
)
as
begin
select * from dbo.FMS_Users whereuserId=@id
end
执行以下语句即可得到结果
exec SelectParUsers 22
通过某一个ID查找数据
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
private static DataTable
Stroedprocedure( int id)
{
string con=System.Configuration.ConfigurationManager.ConnectionStrings[ "consql" ].ToString();
SqlConnection
conn= new SqlConnection(con);
conn.Open();
SqlCommand
cmd = new SqlCommand( "SelectParUsers" ,
conn);
cmd.CommandType
= CommandType.StoredProcedure;
SqlDataAdapter
da = new SqlDataAdapter(cmd);
cmd.Parameters.Add( "@id" ,
SqlDbType.Int, 32).Value = id;
DataTable
ds = new DataTable();
da.Fill(ds);
return ds
}
|
ok 基本的查找数据的存储过程结束 下一篇是增 删 改的操作!实例下载
上面一篇中简单的介绍到了存储过程的查询 接下来是增,删 ,改的实例!
增加的存储过程的代码
create proc [dbo].[InsertUsers]
(
@username varchar(50),
@userpwd varchar(50),
@userphone varchar(50)
)
as
begin
insert into dbo.FMS_Users(userMark,userPassword,userPhone) values(@username,@userpwd,@userphone)
end
调用存储过程的实例
1
2
3
4
5
6
7
8
9
10
11
|
string con
= System.Configuration.ConfigurationManager.ConnectionStrings[ "consql" ].ToString();
SqlConnection
conn = new SqlConnection(con);
conn.Open();
SqlCommand
cmd = new SqlCommand( "InsertUsers" ,
conn);
cmd.CommandType
= CommandType.StoredProcedure;
cmd.Parameters.Add( "@username" ,
SqlDbType.VarChar, 50).Value = "dfsdfsdfs" ;
cmd.Parameters.Add( "@userpwd" ,
SqlDbType.VarChar, 50).Value = "fdffdfds@163.com" ;
cmd.Parameters.Add( "@userphone" ,
SqlDbType.VarChar, 50).Value = "dfds3232" ;
cmd.ExecuteNonQuery();
Stroedprocedure();
|
删除的存储过程的代码
create proc [dbo].[DeleteUsers]
(
@id int
)
as
begin
delete from dbo.FMS_Users whereuserId=@id
end
调用删除的存储过程的实例
string con
= System.Configuration.ConfigurationManager.ConnectionStrings[ "consql" ].ToString();
SqlConnection
conn = new SqlConnection(con);
conn.Open();
SqlCommand
cmd = new SqlCommand( "DeleteUsers" ,
conn);
cmd.CommandType
= CommandType.StoredProcedure;
cmd.Parameters.Add( "@id" ,
SqlDbType.Int, 32).Value = 23;
cmd.ExecuteNonQuery();
Stroedprocedure();
|
修改的存储过程的代码
create proc [dbo].[UpdateUsers]
(
@id int,
@email varchar(50)
)
as
begin
update dbo.FMS_Users setuserEMail=@email whereuserId=@id
end
调用修改的存储过程的实例
1
2
3
4
5
6
7
8
9
10
|
string con
= System.Configuration.ConfigurationManager.ConnectionStrings[ "consql" ].ToString();
SqlConnection
conn = new SqlConnection(con);
conn.Open();
SqlCommand
cmd = new SqlCommand( "UpdateUsers" ,
conn);
cmd.CommandType
= CommandType.StoredProcedure;
cmd.Parameters.Add( "@id" ,
SqlDbType.Int, 32).Value = 21;
cmd.Parameters.Add( "@email" ,
SqlDbType.VarChar, 50).Value = "f3dsfdr3234@163.com" ;
cmd.ExecuteNonQuery();
Stroedprocedure();
|
ok 全部完毕 !十一就这样的过去了!如果有哪位需要这个例子的话, 留下邮箱我发给你!希望多多和大家交流!
高人请问这些问题如何解决! 也是关于数据库的调用问题!这是我搜到的一些典型的案例!谢谢
http://topic.csdn.net/t/20060425/13/4712061.html
http://topic.csdn.net/u/20110314/16/115136f2-9d92-45d6-a909-e2b4d3269de2.html
http://www.cnblogs.com/zlhxinxi83/archive/2007/10/16/925978.html
分享到:
相关推荐
ASP.NET完全入门粗俗易懂适合初级程序员
介绍套接字编程的基本原理,对于有经验的开发人员和没经验的开发人员都有很好的参考价值。
stm32时钟粗俗理解
CS_ASP.NET_Forum FTIT C#ASP .NET最终项目: Web论坛Web应用程序。基本方面和思路: 用户帐号: 电子邮件地址:用于注册和发送通知(例如:注册,被其他用户引用,帐户被暂停); 用户名:唯一的字母数字字符串,...
微软牛人总结的经典C#编码规范,粗俗易懂,很幽默,非常实用!
王爽老师写的 汇编,非常粗俗易懂, 新手学汇编的好书籍,并且还含课课后习题答案
本文实例讲述了Zend Framework教程之模型Model用法。分享给大家供大家参考,具体如下: 附一个简单粗俗的例子。只是大概说明了用法:如果要深究,可以自己跟踪源码了解。 model_demo1 │ .project │ .buildpath ...
数据库的逻辑结构、完整性约束和物理储存结构保存在内部 的中。数据库的各种数据操作(如查找、修改、插⼊和删除等)和数据库的维护管理都是以数据库模式为依据的。 (2)应⽤程序的编译:把包含着访问数据库语句的应⽤...
https://blog.csdn.net/qq_31764341/article/details/124892541 eeprom 出于积累Verilog编程和调试经验的需求,用这个东西练手 使用的是正点原子领航者zynq的板子 ...描述都在博文里面,写的有点粗俗,各位凑合着看吧
粗暴的灵魂 由于缺少xdotool,我制作了一个粗俗的吞噬脚本来控制。 请注意名称,这些字迹很粗糙,是骇客,不是精心制作的艺术品。 版本号 没有标题栏 ... 另外,您可以在shell的rc文件中创建一个别名。
hyde:Jekyll的一个粗俗的两栏主题
他身后那条通道会立即消失,同时其他三个方向上可能会出现新的通道,当然也可能没有新通道出现,那就证明这是个死胡同,走不通,但此时你已经退不回去了,说的粗俗点就是“你挂了”。 现在让你编一个程序,在一个...
因此,本人预祝大家在学习的过程中能够在尽量短的时间内实现'不相信自己'到'相信自己'的过渡。 曾和王爽老师的两个学生有过交流,问他们为什么此书没有答案。他们说这是王爽老师特意不公开答案的,而目的就是希望...
因此,本人预祝大家在学习的过程中能够在尽量短的时间内实现'不相信自己'到'相信自己'的过渡。 曾和王爽老师的两个学生有过交流,问他们为什么此书没有答案。他们说这是王爽老师特意不公开答案的,而目的就是希望...
因此,本人预祝大家在学习的过程中能够在尽量短的时间内实现'不相信自己'到'相信自己'的过渡。 曾和王爽老师的两个学生有过交流,问他们为什么此书没有答案。他们说这是王爽老师特意不公开答案的,而目的就是希望...
因此,本人预祝大家在学习的过程中能够在尽量短的时间内实现'不相信自己'到'相信自己'的过渡。 曾和王爽老师的两个学生有过交流,问他们为什么此书没有答案。他们说这是王爽老师特意不公开答案的,而目的就是希望...
因此,本人预祝大家在学习的过程中能够在尽量短的时间内实现'不相信自己'到'相信自己'的过渡。 曾和王爽老师的两个学生有过交流,问他们为什么此书没有答案。他们说这是王爽老师特意不公开答案的,而目的就是希望...
因此,本人预祝大家在学习的过程中能够在尽量短的时间内实现'不相信自己'到'相信自己'的过渡。 曾和王爽老师的两个学生有过交流,问他们为什么此书没有答案。他们说这是王爽老师特意不公开答案的,而目的就是希望...
laravelCrud-示例 创建,读取,更新和删除(CRUD)是模型最多应具备的四个基本功能。 使用 储存库设计模式。 notify.js。 让我们也去学习存储库设计模式!! 话题 创建,读取,更新,删除,搜索