粗俗易懂的SQL存储过程在.NET中的实例运用
- 整理了一下存储过程在项目中的运用,防止遗忘,便记录于此!存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中。用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象,任何一个设计良好的数据库应用程序都应该用到存储过程。总的来说,存储过程具有以下一些优点:
-
◆存储过程允许标准组件式编程
◆存储过程能够实现较快的执行速度
◆存储过程能够减少网络流量
◆存储过程可被作为一种安全机制来充分利用
本文作者将向大家介绍.NET数据库应用程序中存储过程的应用,以及如何将它与ADO.NET中的SqlDataAdapter对象、DataSet对象等结合使用以提高.NET数据库应用程序的总体性能。
创建一个简单的存储过程
1.不带参数的查询的存储过程
CREATE PROC [dbo].[SelectUsers]
AS
begin
SELECT * from dbo.FMS_Users
end
执行下一句即可得到结果:
exec SelectUsers
创建以上存储过程后,保存之。保存完毕,与该存储过程相对应的节点就会出现在服务器资源管理器中。同时请注意代码编辑窗口中的CREATE关键字变为ALTER关键字了,该关键字是用于更改任何现有的存储过程的。要运行上述存储过程,只要点击其节点并在右键弹出菜单中 执行存储过程”,运行的结果图示如下:

好了 接下来在IDE环境中去调用:
写一个方法在合适的地方调用即可
01 private void Stroedprocedure()
02 {
03 string con=System.Configuration.ConfigurationManager.ConnectionStrings["consql"].ToString();
04 SqlConnection conn=new SqlConnection(con);
05 conn.Open();
06 //相应的存储过程名称及数据库连接
07 SqlCommand cmd = new SqlCommand("SelectUsers",conn);
08 // cmd.CommandType = CommandType.StoredProcedure;
09 //cmd.CommandText = "SelectUsers";
10 //cmd.Connection = conn;
11 SqlDataAdapter da = new SqlDataAdapter();
12 da.SelectCommand = cmd;
13 DataTable ds = new DataTable();
14 da.Fill(ds);
15
16 GridView1.DataSource = ds;
17 GridView1.DataBind();
18
19
20
21 }
ok 已经完成了无参数的存储过程的实例调用!
第二有参数的存储过程的调用 (道理一样)
创建存储过程语句
create proc [dbo].[SelectParUsers]
(
@id int
)
as
begin
select * from dbo.FMS_Users where userId=@id
end
执行以下语句即可得到结果
exec SelectParUsers 22
通过某一个ID查找数据
01 private static DataTable Stroedprocedure(int id)
02 {
03 www.2cto.com string con=System.Configuration.ConfigurationManager.ConnectionStrings["consql"].ToString();
04 SqlConnection conn=new SqlConnection(con);
05 conn.Open();
06 SqlCommand cmd = new SqlCommand("SelectParUsers", conn);
07 cmd.CommandType = CommandType.StoredProcedure;
08 //cmd.CommandText = "SelectParUsers";
09 //cmd.Connection = conn;
10 SqlDataAdapter da = new SqlDataAdapter(cmd);
11 cmd.Parameters.Add("@id", SqlDbType.Int, 32).Value = id;
12 //SqlDataAdapter da = new SqlDataAdapter(cmd);
13 //da.SelectCommand = cmd;
14 DataTable ds = new DataTable();
15 da.Fill(ds);
16
17 return ds
18
19
20 }
粗俗易懂的SQL存储过程在.NET中的实例运用的更多相关文章
- 利用sql 存储过程把表中内容自动生成insert语句
选中所在数据库 执行创建存储过程的sql CREATE proc [dbo].[spGenInsertSQL] (@tablename nvarchar(256),@sqlwhere varchar( ...
- 在SQL存储过程中给条件变量加上单引号
在SQL存储过程中给条件变量加上单引号,不加语句就会出问题,以下就是在存储过程中将条件where设置成了动态变化的,给where赋完值再和前面的语句拼接,再execute(SQL) ), )), )+ ...
- sql 解析字符串添加到临时表中 sql存储过程in 参数输入
sql 解析字符串添加到临时表中 sql存储过程in 参数输入 解决方法 把字符串解析 添加到 临时表中 SELECT * into #临时表 FROM dbo.Func_SplitOneCol ...
- (转载)delphi 中如何调用sql 存储过程
delphi 中如何调用sql 存储过程 使用TADOStoredProc组件,可以,给你举个例子好了 with ADOStoredProc1 do begin Close; Parameters.C ...
- sql存储过程中使用 output
1.sql存储过程中使用 output CREATE PROCEDURE [dbo].[P_Max] @a int, -- 输入 @b int, -- 输入 @Returnc int output - ...
- sql存储过程中使用 output、nvarchar(max)
1.sql存储过程中使用 output CREATE PROCEDURE [dbo].[P_Max] @a int, -- 输入 @b int, -- 输入 @Returnc int output - ...
- Oracle 在存储过程或函数中执行字符串sql
有时,我们需要在存储过程或函数中根据条件拼凑一些sql字符串语句,然后再执行拼凑后的sql字符串,如何做到呢? 参考以下代码: FUNCTION CALCULATE_TARGET_SCORE (CUR ...
- 用sql语句导出oracle中的存储过程和函数
用sql语句导出oracle中的存储过程和函数: SET echo off ; SET heading off ; SET feedback off ; SPOOL 'C:/PRC.SQL' repl ...
- sql存储过程中循环批量插入
前几天有一个需求很头痛,部门是有上下级关系的,在给部门的经理赋予角色和权限的时候,通常我们都会认为假如经理A的部门是1,那么我给了他部门1 的管理权限,那么1的下级部门101,102,103 &quo ...
随机推荐
- ThinkPHP 发送post请求
function post($url, $param=array()){ if(!is_array($param)){ throw new Exception("参数必须为array&quo ...
- UVA 1594 Ducci Sequence(两极问题)
Ducci Sequence Time Limit:3000MS Memory Limit:0KB 64bit IO Format:%lld & %llu D ...
- Android数据库升级、降级、创建(onCreate() onUpgrade() onDowngrade())[4]
数据库版本升级对软件的管理操作. 我们手机经常会收到xxx软件升级什么的提醒,你的软件版本更新,同时你的数据库对应的版本也要相应的更新. 数据库版本更新需要主要的问题: 软件的1.0版本升级到1.1版 ...
- VS2013程序打包部署(图解),vs2013部署
VS2013程序打包部署(图解),vs2013部署 首先要说明的是VS解决方案配置下的Debug模式和Release模式有什么区别.Debug模式通常称为调试模式,它包含调试信息,未对代码进行优化,方 ...
- POJ1789 Truck History(prim)
题目链接. 分析: 最大的敌人果然不是别人,就是她(英语). 每种代表车型的串,他们的distance就是串中不同字符的个数,要求算出所有串的distance's 最小 sum. AC代码如下: #i ...
- Python HiveServer2
1. 安装pyhs2 pyhs2依赖项如下: gcc-c++ python-devel.x86_64 cyrus-sasl-devel.x86_64 因此pyhs2的安装命令如下: ...
- SET NOCOUNT (Transact-SQL)
阻止在结果集中返回显示受 Transact-SQL 语句或存储过程影响的行计数的消息. 语法 SET NOCOUNT { ON | OFF } 注释 当 SET NOCOUNT 为 ON 时,不返回 ...
- WCF默认实例的解读
一:图片 IService1.cs是定义的接口,包含对Service.方法和方法用的类的声明的声明 Service1.cs是对接口的实现,包含实现的方法 代码注释: using System; usi ...
- Binary Tree Level Order Traversal II——LeetCode
Given a binary tree, return the bottom-up level order traversal of its nodes' values. (ie, from left ...
- Foundation Data Structure
LinkedList : /** * 考虑的比较的周全,并且包含了全部的情况,代码也不乱<b></b> * * @param index * 插入的位置 * @param c ...