ASP.NET - 使用 AccessDataSource Web 服务器控件检索数据

 

      使用 AccessDataSource 控件可以检索 Microsoft Access 数据库(.mdb 文件)中的数据。然后,可以在数据绑定控件中显示数据,如 GridViewFormView DetailsView 控件。

AccessDataSource 控件继承了 SqlDataSource 类并用 DataFile 属性替换了 ConnectionString 属性,这样更便于连接到 Microsoft Access 数据库。AccessDataSource 控件使用 System.Data.OleDb 提供程序连接到使用 Microsoft.Jet.OLEDB.4.0 OLE DB 提供程序的 Access 数据库。

 

一、使用 AccessDataSource 控件连接到数据库

AccessDataSource 控件连接到 DataFile 属性中标识的 Microsoft Access 数据库文件(.mdb 文件)。您可以将 DataFile 属性设置为指向 Access 数据库文件的通用命名约定 (UNC) 路径。下面的示例演示如何使用根相对路径标识位于当前 Web 应用程序的 App_Data 文件夹中的 Access 数据库。

  <asp:AccessDataSource

    id="AccessDataSource1"

    DataFile="~/App_Data/Northwind.mdb"

    runat="server"

    SelectCommand="SELECT EmployeeID, LastName, FirstName FROM Employees">

  </asp:AccessDataSource>

如果要在自己的 Web 应用程序中存储 Access 数据库文件,建议将它存储在 App_Data 文件夹中以保持数据库是私有的。ASP.NET 不允许在直接请求 App_Data 文件夹中的文件时,返回这些文件。ASP.NET 进程标识必须被授予读写存储在 App_Data 文件夹中的 Access 数据库的文件权限。

AccessDataSource 控件将 SqlDataSource 基类的 ProviderName 属性设置为 System.Data.OleDb,然后使用 Microsoft.Jet.OLEDB.4.0 OLE DB 提供程序进行连接。不能设置 AccessDataSource 控件的 ProviderName ConnectionString 属性。

说明: AccessDataSource 不会连接到受密码保护的 Access 数据库;要从受密码保护的 Access 数据库中检索数据,请使用 SqlDataSource 控件。

 

二、使用 AccessDataSource 控件选择数据

您可以对要执行的 AccessDataSource 控件指定 SQL 查询,为此可如下面的代码示例所示设置该控件的 SelectCommand 属性。

<form id="form1" runat="server">

  <asp:AccessDataSource

    id="EmployeesAccessDataSource"

    DataFile="~/App_Data/Northwind.mdb"

    runat="server"

    SelectCommand="SELECT EmployeeID, FirstName, LastName FROM Employees" />

 

  <asp:GridView

    id="EmployeesGridView"

    runat="server"

    AutoGenerateColumns="True"

    DataSourceid="EmployeesAccessDataSource" />

      您可以返回 Microsoft Access 查询的结果,为此可如下面的代码示例所示将 SelectCommand SelectCommandType 属性设置为 StoredProcedure

<asp:AccessDataSource

  id="InvoiceAccessDataSource"

  DataFile="~/App_Data/Northwind.mdb"

  runat="server"

  SelectCommand="[Employee Sales By Country]"

  SelectCommandType="StoredProcedure">

  <SelectParameters>

    <asp:Parameter Name="Beginning Date" Type="DateTime" defaultValue="1/1/1997" />

    <asp:Parameter Name="Ending Date" Type="DateTime" defaultValue="1/31/1997" />

  </SelectParameters>

</asp:AccessDataSource>

 

<asp:GridView

  id="InvoiceGridView"

  runat="server"

  AutoGenerateColumns="True"

  DataSourceid="InvoiceAccessDataSource" />

 

三、对 AccessDataSource 控件使用参数

您可以对命令使用参数化查询,然后在运行时提供参数。另外,还可以在调用 Microsoft Access 查询后在运行时指定参数。(要调用 Microsoft Access 查询,应将该命令的命令类型属性设置为 StoredProcedure)。

因为 AccessDataSource 控件扩展了 SqlDataSource 类并使用 System.Data.OleDb 提供程序,所以可以使用“?”占位符字符指定参数占位符。System.Data.OleDb 提供程序并不支持命名参数;而是按参数集合中指定的参数顺序应用参数值。您必须确保参数集合中参数的顺序与 SQL 语句或 Microsoft Access 查询中参数占位符的顺序一致。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值