注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

天涯倦客的博客

祝福你朋友永远快乐!

 
 
 

日志

 
 

Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇  

2011-11-03 13:25:33|  分类: MS SQL |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
写在前面:在进阶篇中,主要通过对使用存储过程,使用事务,加密连接串三部分内容的介绍,给企业库的初学者提供一点帮助。

一. 使用存储过程:

关于数据访问应用程序块的介绍在入门篇里面已经说过了,这里不再重复。下面我们来看看在数据访问应用程序块里面使用存储过程的方法:

1. 不传递参数:不传递参数时值需要指定存储过程的名称,已经命令的类型即可。

1Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客/// <summary>
2Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客 /// 执行存储过程(1)——不传递参数(NoPara)
3
Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客
/// </summary>

4Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客 private void FormatDataBySp1()
5
Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客
{
6
Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客
///创建数据库实例
7Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客 Database db = DatabaseFactory.CreateDatabase("NorthWind"
);
8
Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客
9
Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客
///传递参数
10Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客 DBCommandWrapper dbc = db.GetStoredProcCommandWrapper("GetProductsList"
);
11
Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客
12
Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客
///执行存储过程
13Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客 DataSet ds =
db.ExecuteDataSet(dbc);
14
Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客
15
Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客
///绑定数据
16Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客 DataGrid1.DataSource = ds.Tables[0
];
17
Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客 DataGrid1.DataBind();
18
Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客 }

2. 传递输入参数:需要注意的是在增加参数时是AddInParameter

1Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客/// <summary>
2Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客 /// 执行存储过程(2)——传递输入参数(Input)
3
Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客
/// </summary>

4Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客 private void FormatDataBySp2()
5
Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客
{
6
Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客
///创建数据库实例
7Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客 Database db = DatabaseFactory.CreateDatabase("NorthWind"
);
8
Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客
9
Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客
///传递参数
10Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客 DBCommandWrapper dbc = db.GetStoredProcCommandWrapper("CustOrdersDetail"
);
11
Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客 dbc.AddInParameter(
"@OrderID",System.Data.DbType.Int32,10248
);
12
Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客
13
Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客
///执行存储过程
14Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客 DataSet ds =
db.ExecuteDataSet(dbc);
15
Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客
16
Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客
///绑定数据
17Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客 DataGrid1.DataSource = ds.Tables[0
];
18
Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客 DataGrid1.DataBind();
19
Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客 }

3. 传递输出参数:需要注意的是在增加参数时是AddOutParameter

1Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客/// <summary>
2Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客 /// 执行存储过程(3)——传递输出参数(Output)
3
Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客
/// </summary>

4Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客 private void FormatDataBySp3()
5
Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客
{
6
Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客
///创建数据库实例
7Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客 Database db = DatabaseFactory.CreateDatabase("NorthWind"
);
8
Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客
9
Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客
///传递参数
10Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客 DBCommandWrapper dbc = db.GetStoredProcCommandWrapper("GetProductDetails"
);
11
Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客
12
Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客 dbc.AddInParameter(
"@ProductID",System.Data.DbType.Int32,12
);
13
Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客 dbc.AddOutParameter(
"@ProductName",System.Data.DbType.String,50); //输出

14Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客
15Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客 ///执行存储过程
16Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客
db.ExecuteNonQuery(dbc);
17
Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客
18
Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客
string result = dbc.GetParameterValue("@ProductName").ToString(); //得到输出参数的值

19Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客 }

二. 使用事务:

在企业库数据访问应用程序块里面,对事务提供了很好的支持,具体的使用方法在程序里面有注释,这里就不多说了。

1Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客/// <summary>
2Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客 /// 利用事务更改数据
3
Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客
/// </summary>

4Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客 private void ExecuteUseTran()
5
Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客
{
6
Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客
///创建数据库实例
7Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客 Database db = DatabaseFactory.CreateDatabase("NorthWind"
);
8
Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客
9
Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客
using(IDbConnection Idbconn =
db.GetConnection())
10
Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客
{
11
Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客
///打开连接
12Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客
Idbconn.Open();
13
Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客
14
Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客
///创建事务
15Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客 IDbTransaction Idbtran =
Idbconn.BeginTransaction();
16
Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客
17
Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客
try

18Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客 {
19
Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客
///执行两个存储过程
20Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客 db.ExecuteNonQuery(CommandType.StoredProcedure,"InserOrders"
);
21
Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客 db.ExecuteDataSet(CommandType.StoredProcedure,
"UpdateProducts"
);
22
Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客
23
Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客
///执行完成后提交事务
24Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客
Idbtran.Commit();
25
Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客 }

26Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客 catch
27Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客 {
28
Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客
///回滚事务
29Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客
Idbtran.Rollback();
30
Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客 }

31Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客 finally
32Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客 {
33
Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客
///关闭连接
34Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客
Idbconn.Close();
35
Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客 }

36Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客 }

37Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客
38
Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客 }

三. 加密连接字符串:

1. 创建一个加密的Stored Provider

Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客

2. 创建新的加密算法:

Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客

Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客
3.
选择加密算法:

Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客
4.
创建加密密钥:
Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客

5. 保存加密密钥的保存文件,该文件要小心保存:
Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客

6. 指定加密的部分:

Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客

这样我们看到,在配置文件里面的内容变成了乱码。

总结:关于数据访问应用程序块的进阶篇就写到这里了,希望对初学企业库的朋友有所帮助Enterprise Library Step By Step系列(四):数据访问程序块——进阶篇 - 海里的贝壳 - apple的博客

  评论这张
 
阅读(778)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017