このチュートリアルでの前提条件として、いくつかの設定が必要になります。
- SQL Server の設定
- SQL Server(または OEM バージョン、MSDE)をインストールしている場合は、SQL Server 認証を要求するよう設定されている必要があります。
- SQL Server(または OEM バージョン、MSDE)がインストールされていない場合は、MSDE をインストールし、SQL Server 認証を True に設定します。
- SQL Server とともに提供される Northwind データベースをインストールし、SQL Server 認証が要求されることを確認する必要があります。
- Web サイトで使用するために、制限アクセス アカウントを作成する必要があります。
SQL Server 認証を伴う MSDE または Northwind データベースをインストールするには、このマニュアルの「システム設定」で次の節を参照してください。
- 「MSDE のインストールと Windows または SQL Server 認証」
- 「Northwind データベースのインストール」
- 「セキュリティ:アクセス制限付きのデータベース アカウントの作成」
SQL Server および Northwind データベースを設定すると、Northwind データベースから IDataReader として値を返すクラス ライブラリを作成することができます。
![]() |
---|
このチュートリアルでは、SQL Server に付属の Northwind データベースを使用しますが、OLEDB 準拠のデータベースならどれでも使用できます。 |
[ファイル]メニューの[新規作成]をポイントし、次に[プロジェクト]をクリックします。
[新しいプロジェクト]ダイアログ ボックスで、[プロジェクトの種類]リストから C# または Visual Basic の言語フォルダを選択します。
[テンプレート]のリストで[クラス ライブラリ]をクリックします。
[名前]フィールドで、デフォルトのプロジェクト名を "VB_Lib_DataLayer" [Visual Basic] または "CS_Lib_DataLayer" [C#] に置き換え、[OK]をクリックします。
ソリューション エクスプローラで、デフォルト クラス(Class1)を右クリックし、[削除]をクリックします。
ソリューション エクスプローラで太字のプロジェクト名を右クリックし、[追加]をポイントして[クラス]をクリックします。
[新しい項目の追加]ダイアログ ボックスで、[テンプレート]ビューから“Class”という名前のテンプレートを選択します。
[名前]フィールドに「DataCenter」と入力し、[追加]をクリックします。
Visual Basic を使用している場合は、クラスの一番上に「Option Strict On」と入力します。
クラス署名の上で、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;
```
- クラス レベルで、OLEDB 接続文字列を表すプライベート文字列定数を作成します。
<table>
<colgroup>
<col style="width: 100%" />
</colgroup>
<thead>
<tr class="header">
<th><img src="images/w5dk7atd.alert_note(ja-jp,VS.90).gif" title="Note" 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";
```
データベース クエリーを表す 2 番目のプライベート文字列定数を作成します。
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";
IDataReader を返す GetCustomersUsingOleDb() というパブリック メソッドを作成し、"Shared" [Visual Basic] または "static" [C#] にします。
``` vb
Public Shared Function GetCustomersUsingOleDb() As IDataReader
End Function
```
``` csharp
public static IDataReader GetCustomersUsingOleDb()
{
}
```
このメソッド内で、OleDbConnection を宣言してインスタンス化し、OLEDB_CONNECTION_STRING 定数を渡します。
Dim myOleDbConnection As OleDbConnection = New OleDbConnection(OLEDB_CONNECTION_STRING)
OleDbConnection oleDbConnection = new OleDbConnection(OLEDB_CONNECTION_STRING);
データベース接続を開くために、OleDbConnection インスタンスから Open() メソッドを呼び出します。
``` vb
myOleDbConnection.Open()
```
``` csharp
oleDbConnection.Open();
```
OleDbCommand を宣言してインスタンス化し、CUSTOMER_TABLE_QUERY 定数および OleDbConnection インスタンスを渡します。
Dim myOleDbCommand As OleDbCommand = New OleDbCommand(CUSTOMER_TABLE_QUERY, myOleDbConnection)
OleDbCommand oleDbCommand = new OleDbCommand(CUSTOMER_TABLE_QUERY, oleDbConnection);
OleDbCommand インスタンスの ExecuteReader() メソッドを呼び出し、IDataReader インスタンスに渡します。
``` vb
Dim myIDataReader As IDataReader = myOleDbCommand.ExecuteReader()
```
``` csharp
IDataReader iDataReader = oleDbCommand.ExecuteReader();
```
メソッドから IDataReader インスタンスを返します。
Return myIDataReader
return iDataReader;
[ビルド]メニューの[ソリューションのビルド]をクリックします。
[ファイル] メニューの[ソリューションを閉じる]をクリックします。