创建类库

使用本教程之前,必须进行以下设置。

数据库设置准备工作

  1. SQL Server 配置:
    • 如果安装了 SQL Server(或其 OEM 版本:MSDE),则必须配置为要求 SQL Server 身份验证。
    • 如果未安装 SQL Server(或其 OEM 版本:MSDE),则必须安装 MSDE,并将 SQL Server 身份验证设置为 True。
  2. 必须安装 SQL Server 附带的 Northwind 数据库,并确认该数据库要求 SQL Server 身份验证。
  3. 必须创建受限访问帐户以在网站内使用。

创建包含返回 IDataReader 的静态方法的类库

若要安装使用 SQL Server 身份验证的 MSDE 或 Northwind 数据库,请从本文档中的“系统设置”部分转至以下各节:

一旦配置好了 SQL Server 和 Northwind 数据库,就可以创建从 Northwind 数据库返回值(作为 IDataReader)的类库了。

Note注意

本教程使用 Northwind 数据库和 SQL Server,但您可以使用任何与 OleDb 兼容的数据库。

  1. 从“文件”菜单中,指向“新建”,然后单击“项目”。

  2. 在“新建项目”对话框的“项目类型”列表中为 C# 或 Visual Basic 选择语言文件夹。

  3. 从“模板”列表中,单击“类库”。

  4. 在“名称”字段中,将默认项目名称替换为 "VB_Lib_DataLayer" [Visual Basic] 或 "CS_Lib_DataLayer" [C#],然后单击“确定”。

  5. 在“解决方案资源管理器”中,右击默认类(Class1),然后单击“删除”。

  6. 在“解决方案资源管理器”中,右击用粗体显示的项目名,指向“添加”,然后单击“类”。

  7. 在“添加新项”对话框的“模板”视图中,选择名为“类”的模板。

  8. 在“名称”字段中,键入“DataCenter”,然后单击“添加”。

  9. 如果使用的是 Visual Basic,请在类的顶部键入 Option Strict On。

  10. 如果还没有声明 System.Data 和 System.Data.OleDb 命名空间,则在类签名之上,向类顶部为这些命名空间添加 "Imports" [Visual Basic] 或 "using" [C#] 声明。

``` vb
Imports System.Data
Imports System.Data.OleDb
```

``` csharp
using System.Data;
using System.Data.OleDb;
```
  1. 在类级别,为 OleDb 连接字符串创建一个专用字符串常量。
<table>
<colgroup>
<col style="width: 100%" />
</colgroup>
<thead>
<tr class="header">
<th><img src="images/8yfdxzdx.alert_note(zh-cn,VS.90).gif" alt="Note" class="note" />注意</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><p>出于安全性考虑,使用访问权限受到限制的数据库帐户非常重要。有关更多信息,请参见<a href="ms227498(v=vs.90).md">“安全性:创建受限访问数据库帐户”</a>。</p></td>
</tr>
</tbody>
</table>

在编写的代码中,请将示例服务器名称 DBServer01 和示例密码 1234(如下所示)替换为您的数据库的服务器名称和密码。

``` vb
Private Const OLEDB_CONNECTION_STRING As String =
"provider=sqloledb;Data Source=DBSERVER01;Initial
Catalog=Northwind;User Id=limitedPermissionAccount;Password=1234"
```

``` csharp
private const string OLEDB_CONNECTION_STRING =
"provider=sqloledb;Data Source=DBSERVER01;Initial
Catalog=Northwind;User Id=limitedPermissionAccount;Password=1234";
```
  1. 为数据库查询创建第二个专用字符串常量。

    Private Const CUSTOMER_TABLE_QUERY As String = "SELECT CustomerID,
    CompanyName, ContactName, Address, City FROM Customers"
    
    private const string CUSTOMER_TABLE_QUERY = "SELECT CustomerID,
    CompanyName, ContactName, Address, City FROM Customers";
    
  2. 创建一个返回 IDataReader 名为 GetCustomersUsingOleDb() 的 "Shared" [Visual Basic] 或 "static" [C#] 公用方法。

``` vb
Public Shared Function GetCustomersUsingOleDb() As IDataReader
End Function
```

``` csharp
public static IDataReader GetCustomersUsingOleDb()
{
}
```
  1. 在此方法中,声明并实例化 OleDbConnection 并传递 OLEDB_CONNECTION_STRING 常量。

    Dim myOleDbConnection As OleDbConnection = New
    OleDbConnection(OLEDB_CONNECTION_STRING)
    
    OleDbConnection oleDbConnection = new
    OleDbConnection(OLEDB_CONNECTION_STRING);
    
  2. 从 OleDbConnection 实例调用 Open() 方法以打开数据库连接。

``` vb
myOleDbConnection.Open()
```

``` csharp
oleDbConnection.Open();
```
  1. 声明并实例化 OleDbCommand 并传递 CUSTOMER_TABLE_QUERY 常量和 OleDbConnection 实例。

    Dim myOleDbCommand As OleDbCommand = New
    OleDbCommand(CUSTOMER_TABLE_QUERY, myOleDbConnection)
    
    OleDbCommand oleDbCommand = new OleDbCommand(CUSTOMER_TABLE_QUERY,
    oleDbConnection);
    
  2. 调用 OleDbCommand 实例的 ExecuteReader() 方法,并将其传递到 IDataReader 的实例。

``` vb
Dim myIDataReader As IDataReader = myOleDbCommand.ExecuteReader()
```

``` csharp
IDataReader iDataReader = oleDbCommand.ExecuteReader();
```
  1. 从该方法中返回 IDataReader 实例。

    Return myIDataReader
    
    return iDataReader;
    
  2. 从“生成”菜单中,单击“生成解决方案”。

  3. 从“文件”菜单中,单击“关闭解决方案”。