- データベースに接続してデータセットを作成する。
- データセットをコントロールに接続する。
データセットを作成する方法には、設計時にVisual Studioのデータ ソース構成ウィーザードを利用する方法と、コードで作成する方法の2種類があります。以下では、項目に分けてデータベースに接続する方法を解説します。なお、接続するデータベースは、日付時刻型のデータを格納した Sample.mdb を例にしています。
注意事項
カレンダーコントロールでデータ接続をサポートしているプロパティは、以下の2つです。
SelectedDateプロパティにデータ接続する場合は、SelectionMode プロパティをSelectionMode.Oneに設定して単一選択モードにしておく必要があります。
さらに、FocusDateとSelectedDateの各プロパティにデータを接続する場合は、以下の順序でコードを記述する必要があります。この順序が異なると、エラーが発生して正常にデータを接続できません。これは、FocusDateプロパティとSelectedDateプロパティが、Null値をサポートするためにコントロール内部で特別な処理を行っていることに起因しています。
SelectedDateプロパティにデータ接続する場合は、SelectionMode プロパティをSelectionMode.Oneに設定して単一選択モードにしておく必要があります。
さらに、FocusDateとSelectedDateの各プロパティにデータを接続する場合は、以下の順序でコードを記述する必要があります。この順序が異なると、エラーが発生して正常にデータを接続できません。これは、FocusDateプロパティとSelectedDateプロパティが、Null値をサポートするためにコントロール内部で特別な処理を行っていることに起因しています。
- データセットの生成
- データセットのクリア
- データ接続の設定
- データセットの再設定
データ ソース構成ウィザードによる接続
プロジェクトにデータソースを追加
データ ソース構築ウィザードを使用してプロジェクトにデータソースを追加します。- [データ]メニューの[新しいデータ ソースの追加(N)]を選択します。
- 「データ ソース構成ウィザード」が起動したら「データベース」を選択して[次へ]ボタンをクリックします。
- 「データ接続の選択」画面で[新しい接続]ボタンをクリックします。
- 「接続の追加」ダイアログで、次のように選択し、[接続のテスト]ボタンを押して接続を確認します。
・ データ ソース: Microsoft Access データベース ファイル
・ データベース ファイル名: Sample.mdb - [OK]ボタンをクリックします。
- 「データ接続の選択」画面で[次へ]ボタンをクリックします。
- ファイル コピーの確認メッセージボックスで[はい] をクリックします。
- 「接続文字列をアプリケーション構成ファイルに保存する」画面で[次へ]ボタンをクリックします。
- 「データベース オブジェクトの選択」画面で、「データセット内に指定するデータベース オブジェクト」から「メール」テーブルのチェックをONに設定し、[完了]ボタンをクリックします。
コントロールに接続
カレンダーコントロールのSelectedDateプロパティに「メール」テーブルの「受信日時」フォールドを接続します。- フォームにGcCalendar コントロール(GcCalendar1)を貼り付けます。
- GcCalendar コントロールを選択しプロパティウィンドウを開きます。
- (DataBindings) の SelectedDate プロパティのドロップダウンウィンドウを開きます。
- 「受信日時」を選択することで、SelectedDateプロパティが「受信日時」フォールドに接続されます。
データ ソースウィンドウからドラッグ&ドロップ(Drag Once 接続)
プロパティを設定するほかに、データソースウィンドウからドラッグ&ドロップして簡単にデータに接続したコントロールを貼り付けることもできます。- 「データソース」ウィンドウを開き「メール」テーブルが追加されたことを確認します。
- 「メール」-「受信日時」のドロップダウンメニューから [GcCalendar] を選択します。[GcCalendar] がメニューに表示されない場合、[カスタマイズ] で表示されるダイアログで「GcCalendar」を有効にします。
- 「データソース」ウィンドウから「受信日時」をフォームにドラッグ&ドロップします。
- 「受信日時」フィールドに接続したGcCalendar コントロールがフォームに貼り付けられます。
コーディングによる接続
データセットを作成
データセットを作成する前に、OleDbConnectionとOleDbDataAdapterの各オブジェクトを生成しておく必要があります。また、データベースのフルパスは、環境に合わせて設定し直してください。Imports System.Data.OleDb Friend aConn As OleDbConnection = New OleDbConnection( _ "Provider=Microsoft.Jet.OLEDB.4.0;" _ + "Data Source= ..\Data\Sample.mdb;") Friend aDA As OleDbDataAdapter = New OleDbDataAdapter( _ "SELECT 受信日時 FROM [メール]", aConn) Friend aDS As DataSet = New DataSet()
using System.Data.OleDb; private OleDbConnection aConn = new OleDbConnection( "Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source= ..\Data\Sample.mdb;"); private OleDbDataAdapter aDA = new OleDbDataAdapter( "SELECT 受信日時 FROM [メール]", aConn); private DataSet aDS = new DataSet();
データセットをコントロールに接続
データセット(aDS)をカレンダーコントロールに接続する前に、aDSにテーブルを格納しておく必要があります。最初のコードは、そのためのものです。次に、データセットのaDSをカレンダーコントロールのDataBindingsプロパティに設定します。DataBindingsプロパティが参照するControlBindingsCollectionオブジェクトのAddメソッドの引数には、次のように設定します。
- 第1引数:データをバインドするプロパティ名(文字列型)
- 第2引数:対象となるデータセット
- 第3引数:データをバインドするテーブルと列名(文字列型)
aDA.Fill(aDS, "メール") GcCalendar1.DataBindings.Add("SelectedDate", aDS, "メール.受信日時", True)
aDA.Fill(aDS, "メール"); gcDateTime1.DataBindings.Add("VSelectedDatealue", aDS, "メール.受信日時", true);