从ASP.NET 2.0连接到Oracle或Access






1.20/5 (2投票s)
2007年8月16日
5分钟阅读

33240
Wrox的作者Devin Rader和Bill Evjen展示了ASP.NET 2.0的SqlDataSource和AccessDataSource控件
从ASP.NET 2.0连接到Oracle或Access
作者:Devin Rader 和 Bill Evjen
如果您的数据存储在SQL Server、SQL Server Express、Oracle Server、ODBC数据源、OLE DB数据源或Windows SQL CE数据库中,那么SqlDataSource控件就是您应该使用的数据源控件。该控件提供了一个易于使用的向导,可以引导您完成配置过程,或者您也可以通过直接修改“源”视图中的控件属性来手动修改控件。在这里,我们将向您展示如何使用此控件连接到Oracle,最后将简要介绍如何使用类似的AccessDataSource控件连接到Access数据库。
使用SqlDataSource连接Oracle
正如您会使用SqlDataSource控件连接到Microsoft的SQL Server一样,您也可以使用相同的控件连接到您企业中可能包含的其他数据库。一个流行的企业级数据库是Oracle的数据库之一,例如Oracle 10g数据库。
要将SqlDataSource控件与Oracle一起使用,首先将SqlDataSource控件拖放到页面的设计表面上。然后,通过使用SqlDataSource控件的智能标记,单击“配置数据源”链接来配置您的数据源。
在配置数据源时,您将需要创建一个到Oracle数据库的新连接。初始的“添加连接”对话框在此处图1中显示。

图 1
默认情况下,数据源配置为与SQL Server数据库一起工作。您可以通过简单地按“更改”按钮来更改此默认设置。这将启动一个新对话框,允许您选择Oracle作为选项。此对话框在此处图2中显示。

图 2
选择Oracle数据库后,“添加连接”对话框将得到修改,使其更适合此任务。此修改在此处图3中显示。

图 3
在“添加连接”对话框中,您可以在“服务器名称”文本框中添加您正在连接的Oracle数据库的名称。您在此处放置的名称是在tnsnames.ora
文件中保存的数据库名称。安装Oracle客户端到将要建立与Oracle连接的服务器上后,就会创建此文件。您通常可以在C:\Oracle\product\10.1.0\Client_1\NETWORK\ADMIN
找到此文件。此.ora
文件中的数据库条目示例在此处显示。
MyDatabase = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.101)(PORT = 1521)) ) (CONNECT_DATA = (SID = MyDatabase) (SERVER = DEDICATED) ) )
在引用数据库之后,您就可以使用数据库用户名和密码,然后像使用SQL Server一样简单地使用SqlDataSource控件。一旦SqlDataSource的配置完成,您将在web.config
文件的<connectionStrings>
部分找到一个到Oracle的新连接(如果您在配置过程中选择将其保存在那里)。此示例在此处显示。
<connectionStrings> <add name="ConnectionString" connectionString="Data Source=MyDatabase;User ID=user1;Password=admin1pass;Unicode=True" providerName="System.Data.OracleClient" /> </connectionStrings>
AccessDataSource控件
虽然您可以使用SqlDataSource连接到Access数据库,但ASP.NET还提供了一个专用的AccessDataSource控件。此控件通过Jet Data Provider提供对Access数据库的专用访问,但由于它派生自SqlDataSource,因此它仍然使用SQL命令来执行数据检索。
尽管它与SqlDataSource控件相对相似,但AccessDataSource控件有一些特殊之处。首先,该控件不需要您设置ConnectionString
属性。相反,该控件使用DataFile
属性来允许您直接指定要用于数据访问的Access .mdb文件。
不具有ConnectionString
属性的一个副作用是,AccessDataSource无法连接到受密码保护的数据库。如果您需要访问受密码保护的Access数据库,您可以使用SqlDataSource控件,它允许您在连接字符串中提供用户名和密码。
此外,由于AccessDataSource使用System.Data.OleDb来执行数据访问,因此参数的顺序很重要。您需要验证任何Select、Insert、Update或Delete参数集合中参数的顺序是否与SQL语句中参数的顺序匹配。

此摘录来自《Professional ASP.NET 2.0 Special Edition》的第11章“ASP.NET 2.0中的数据绑定”,该书是畅销书《Professional ASP.NET 2.0》的扩展版。这个新的扩展特别版增加了大约300页的新内容,并在全书范围内进行了更新。Bill Evjen(密苏里州圣路易斯)是最积极的.NET技术倡导者之一。他自2000年以来一直涉足.NET领域,并已成为代表近50万会员的国际.NET协会(International .NET Association)的创始人兼主席。除了在.NET领域工作外,Bill还担任国际新闻和金融服务公司路透社首席科学家办公室的技术总监。Bill是《Professional ASP.NET 2.0 Special Edition》的首席联合作者。Devin Rader是Infragistics的技术布道师,负责撰写Infragistics参考应用程序和.NET技术文章,以及在全球范围内交付Infragistics的技术演示。Devin曾联合创办圣路易斯.NET用户组,并经常在全国社区活动中发表演讲。Devin为ASP.NET Pro杂志撰写每月ASP. NET技巧与窍门专栏,并且是《Professional ASP.NET 2.0 Special Edition》的联合作者。版权所有 2006 Wiley Publishing Inc,经许可转载,保留所有权利。