Enterprise Library 2.0 Hands On Lab 翻译(1):数据访问程序块(一)

练习一:使用数据访问程序块执行静态SQL语句

该练习示范了如何使用数据访问程序块进行最基本的数据访问,另外还有如何去配制程序块,提供运行时再选择数据库。

 

第一步

打开SimpleData.sln项目,默认的安装路径应该为C:\Program Files\Microsoft Enterprise Library January 2006\labs\cs\Data Access\exercises\ex01\begin,并编译。

 

第二步 创建QuickStarts数据库

1.用记事本打开DataAccessQuickStarts.sql,默认的安装路径应该为C:\Program Files\Microsoft Enterprise Library January 2006\QuickStarts\Data,选择 文件 | 另存为 菜单,并选择编码格式encodingUnicode,保存并覆盖原来的文件,如何出现只读属性,请在文件属性中去掉只读属性。

 

2.在同一个目录下,运行SetUpQuickStartsDB.bat批处理文件,注意数据库将被安装在默认的实例(local)\SQLEXPRESS下,如果需要更改,用记事本打开SetUpQuickStartsDB.bat文件进行修改。

 

第三步 回顾应用程序

Visual Studio 2005解决方案管理器中选择MainForm.cs文件,选择 View | Designer 菜单,应用程序包含一个DataGrid和几个Menu,我们将使用数据访问应用程序块来统计数据库中的Customer的数量,并加载数据到DataGrid中。

 

第四步 实现Customer菜单项

1.选中CustomerManagment项目,选择 Project | Add Reference … 菜单命令,在打开的对话框中选择Browse,并添加如下两个程序集。

Microsoft.Practices.EnterpriseLibrary.Common.dll

Microsoft.Practices.EnterpriseLibrary.Data.dll

默认的位置应该是C:\Program Files\Microsoft Enterprise Library January 2006\bin

2.在解决方案管理器中选中MainForm.cs文件,选择View | Code 菜单命令

3.在文件中添加如下命名空间:

using Microsoft.Practices.EnterpriseLibrary.Data;

4.找到mnuCount_Click方法(窗体中Customer | Count 菜单的单击事件),并添加如下代码。

private void mnuCount_Click(object sender, System.EventArgs e)

{

    
// TODO: Count Customers

    Database db 
= null;

    db 
= DatabaseFactory.CreateDatabase("QuickStarts Instance");

 

    
int count = (int)db.ExecuteScalar(

        CommandType.Text,

        
"SELECT COUNT(*) FROM Customers");

 

    
string message = string.Format(

        
"There are {0} customers in the database",

        count.ToString());

 

    MessageBox.Show(message);

}

在上面的代码中首先声明了一个名为QuickStarts Instance的数据库实例,在配置文件中配置好的,这个时候数据库连接并没有真正的打开。db.ExecuteScalar()方法有很多个重载,选择一个执行静态SQL语句的方法返回的结果类似于SqlCommand .ExecuteScalar()。在该方法中打开并关闭数据库连接。

5.找到mnuLoad_Click方法(窗体中Customer | Load 菜单单击事件),并添加如下代码。

private void mnuLoad_Click(object sender, System.EventArgs e)

{
    
// TODO: Load Customers

    Database db 
= null;

    db 
= DatabaseFactory.CreateDatabase();

    DataSet ds 
= db.ExecuteDataSet(

        CommandType.Text,

        
"SELECT * From Customers");

    dataGrid1.DataSource 
= ds.Tables[0];

}

db.ExecuteDataSet()方法请求打开并关闭数据库连接,它返回一个用SQL语句查询结果填充的DataSet,它可能会包含多张表。

 

第五步 配置应用程序

1.在项目CustomerManagement中添加一个应用程序配置文件(App.config),单击CustomerManagement项目,选择Project| Add New Item…菜单命令,在弹出的对话框中选择Application configuration file,保留名称为App.config

2.使用Enterprise Library配置工具配置应用程序,可以通过开始菜单打开该配置工具,选择所有程序| Microsoft patterns and practices | Enterprise Library | Enterprise Library Configuration,并打开App.config文件。或者直接在Visual Studio中使用该工具打开配置文件。

3.在解决方案管理器中选中App.config文件,在View菜单或者在右键菜单中选择Open With…,将打开OpenWith对话框,单击Add按钮。

4.在Add Program对话框中,设置Program name指向EntLibConfig.exe文件,默认的路径为C:\Program Files\Microsoft Enterprise Library January 2006\bin,设置Friendly nameEnterprise Library Configuration,单击OK按钮。

Visual Studio会把配置文件(App.config)作为一个命令行参数传递给EntLibConfig.exe

5.在Open With对话框中,选中Enterprise Library Configuration并单击OK按钮。

6.如果在machine.config中已经定义了connectionStrings配置区,你会发现Enterprise Library Configuration工具会自动创建一个数据访问应用程序块。选中Data Access Application Block | Connection Strings节点,并选择菜单Action | New | Connection String命令。

7.如果没有数据访问应用程序块定义,在Application上右击并选择New | Data Access Application Block,即可创建一个新的数据访问应用程序块。

8.选择Data Access Application Block | Connection Strings | Connection String节点,修改Name属性为QuickStarts Instance

这里的名字跟代码中使用的数据库名相对应,它是创建了数据库的别名在运行时映射到具体的数据库。。

9.在QuickStarts Instance下选择Database节点,在右边修改Value属性的值为EntLibQuickStarts

10.相应的,选择Server节点,修改它的值为(local)\SQLEXPRESS,即为你的数据库服务器实例名。

11.选择Data Access Application Block节点,设置DefaultDatabase的值为QuickStarts Instance,如果你在代码中不指定默认的数据库实例名,将会默认的使用它。

12.选择菜单File | Save All保存应用程序的配置,并关闭Enterprise Library Configuration工具。

 

第六步 运行应用程序

1.在Visual Studio中选择Debug | Start Without Debugging菜单命令运行应用程序,将会弹出App.config在代码编辑器之外被修改的警告对话框,单击Yes。运行应用程序后,单击Customers | Count菜单显示数据库中Customers的数量,单击Customers | Load数据将会填充到DataGrid中。

2.关闭应用程序和Visual Studio

完成后的解决方案代码如C:\Program Files\Microsoft Enterprise Library January 2006\labs\cs\Data Access\exercises\ex01\end所示。

 

更多Enterprise Library的文章请参考《Enterprise Library系列文章

posted on 2006-10-06 12:10 TerryLee 阅读(8794) 评论(21)  编辑 收藏 所属分类: Enterprise Library

评论

#1楼  2006-10-11 12:07 spider[匿名] [未注册用户]

兄弟们,问个问题。dataGridView能不能和dataReader绑定起来呢,怎样做的。谢谢!   回复  引用  查看    

#2楼  2006-11-26 13:10 天涯海角[匿名] [未注册用户]

我正在打这个,一下子还不懂,仔细看.   回复  引用  查看    

#3楼  2006-12-14 10:56 吴勇      

在Enterprise Library Configuration中设置的属性,没有保存到config文件中是怎么回事   回复  引用  查看    

#4楼 [楼主] 2006-12-15 00:01 TerryLee      

@吴勇
你用的是哪个版本?   回复  引用  查看    

#5楼  2006-12-27 14:12 bobox [未注册用户]

请问,如果要连接oracle怎么配?
主要是
Database里填什么?
Server里填什么?
UID 用户名/Schema
PWD 密码

由于oracle在客户端如果已经配好了tns文件。那么我应该不需要在填写具体的服务器名了吧?

大哥给实际的例子吧?   回复  引用  查看    

#6楼  2007-03-05 13:22 wuluhua2003 [未注册用户]

请问,如果要连接oracle怎么配制啊,能不能给我实例啊!   回复  引用  查看    

#7楼  2007-03-13 08:35 我不是流氓 [未注册用户]

第一步

打开SimpleData.sln项目,默认的安装路径应该为C:\Program Files\Microsoft Enterprise Library January 2006\labs\cs\Data Access\exercises\ex01\begin,并编译。
================================
我安装的企业库怎么没有这个目录啊,所以也就找不到示例代码了。我装的企业库2.0,如果你有的话可以给我发一个吗?谢谢了!
linghuchong168@163.com   回复  引用  查看    

#8楼  2007-03-14 02:07 行与思      

@我不是流氓
你还需要装一个《Enterprise Library 2.0 Hands On Lab 》,这是一个企业库的学习例程   回复  引用  查看    

#9楼  2007-04-03 15:52 ff [未注册用户]

请问哪里有那企业库的学习例程下
  回复  引用  查看    

#10楼  2007-08-18 11:25 fanrsh      

创建了一个 EnterpriseLibrary 交流,学习群,想一起研究的朋友加入(8456438)   回复  引用  查看    

#11楼  2007-09-05 13:33 thank you. [未注册用户]

But i have not find out any address for download '企业库的学习例程'.
Can you give the address?
Thank you for your time!   回复  引用  查看    

#12楼  2007-09-14 11:41 在线翻译 [未注册用户]

谢谢,很好的文章,翻译官留言   回复  引用  查看    

#13楼  2008-01-10 17:40 dpzhoum@dfl.com.cn [未注册用户]

我在orcale中创建了一个存储过程,定义了一个游标参数,存储过程返回一个结果集。
我用executedataset可以取到结果集,
但用executesalar则返回null, 但ds.table[0].rows[0][0] 有值,请问什么原因???

dpzhoum@dfl.com.cn   回复  引用  查看    


标题  
姓名  
主页
Email (只有博主才能看到) 
验证码 *  看不清,换一张
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2006-10-06 13:15 编辑过
 
另存  打印
最新IT新闻:
· 阿里巴巴确立未来十年战略规划 修改自身定位
· 微软高管:Wii用户最终会成为Xbox 360用户
· 遵守YouTube案裁定 谷歌将陷入隐私指控深渊
· iPhone入华在即 中国手机产业生存面临考验
· 阿里巴巴集团再向淘宝注资20亿元
 


导航

公告

  • 网名:TerryLee
  • 本名:李会军
  • 位置:中国北京 Ethos
  • 联系方式:
  • 个人主页

 MVP配置

 版权声明

  • 本站采用创作共用许可 署名,非商业

绿色通道

IT新闻

统计

与我联系

留言簿(311)

我的标签

随笔分类

随笔档案

个人站点

关注项目

好的网站

我的好友

友情博客

搜索

积分与排名

阅读排行榜

评论排行榜