ADO.NET Accessのホームへ戻る

MapPath()メソッドを利用してAccessConnectionStringを生成するサンプル

 

MapPath()メソッドを利用してAccessConnectionStringを生成するサンプル

 

このサンプルは、HttpRequestクラスのMapPath()メソッドを使用してAccessConnectionStringを生成します。ProviderData Sourceのテキストボックスにデータを入力したらConnect to Access DataBaseのボタンをクリックします。ボタンをクリックすると、AccessConnectionStringを生成してデータベースを開きます。Data Sourceのテキストボックスには、AccessNwind.mdbデータベースの相対パスを入力します。

 

このサンプルでは、以下のノウハウを習得することができます。

 

  HttpRequestMapPath()メソッドの使い方

  ランタイム時にAccessConnectionStringを生成する方法

  OleDbConnectionOpen()/Close()メソッドの使い方

  OleDbConnectionConnectionString/Stateプロパティの使い方

 

サンプルの<form>…</form>には、TextBoxButtonLabelを定義しています。行41-43では、ProviderTextBoxを定義しています。行42では、Textプロパティにデフォルトのプロバイダーを設定しています。行51-53では、Data SourceTextBoxを定義しています。行52では、TextプロパティにAccessNwind.mdbのパスを設定しています。Data Sourceには、物理アドレスの代わりに相対パスを入力します。行57-59では、Connect to Access DataBaseButtonを定義しています。Buttonには、OnClickイベントを登録しています。OnClickイベントでは、AccessConnectionStringを生成してデータベースを開きます。行61Labelには、実行結果を表示します。

 

34: <form runat="server">
 38:     Provider:
 41:     <asp:TextBox id="txtProvider" runat="server"
 42:       Text="Microsoft.Jet.OLEDB.4.0"
 43:       Width="200px" />
 48:     Data Source:
 51:     <asp:TextBox id="txtDataSource" runat="server"
 52:       Text="../../webdb/Nwind.mdb"
 53:       Width="200px" />
 57: <asp:Button id="btnOpen" runat="server"
 58:   Text="Connect to Access DataBase"
 59:   OnClick="btnOpen_Click" />
 60: <hr>
 61: <asp:Label id="lblMessage" runat="server" />
 62: </form>

 

Connect to Access DataBaseのボタンをクリックすると、OnClickイベントが発生します。OnClickイベントでは、AccessConnectionStringを生成してデータベースを開きます。行8-14With…End Withでは、StringBuilderAppend()メソッドでAccessConnectionStringを生成しています。行12-13では、MapPath()メソッドでDATA SOURCE=を生成しています。MapPath()メソッドは、引数で指定された相対パスを物理アドレスで返します。

 

15では、OleDbConnectionのインスタンスを生成しています。引数には、StringBuilderで生成したAccessConnectionStringを指定しています。行16-18では、LabelTextプロパティにOleDbConnectionConnectionStringプロパティを設定しています。行19では、OleDbConnectionOpen()メソッドでAccessNwind.mdbデータベースを開いています。行20-23では、LabelTextOleDbConnectionStateプロパティを設定しています。行24では、OleDbConnectionClose()メソッドでAccessNwind.mdbデータベースを閉じています。行25-28では、LabelTextOleDbConnectionStateプロパティを設定しています。Labelには、以下のような情報が表示されます。

 

ConnectionString:PROVIDER=Microsoft.Jet.OLEDB.4.0;

DATA SOURCE=E:\Inetpub\wwwroot\AspAdo\webdb\Nwind.mdb
ConnectionState:Open
ConnectionState:Closed

ConnectionStringDATA SOURCE=には、MapPath()メソッドで取得した物理アドレスが設定されています。

 

  6: Sub btnOpen_Click(s As Object, e As EventArgs)
  8:   With sbConnectionString
  9:     .Append("PROVIDER=")
 10:     .Append(txtProvider.Text.Trim())
 11:     .Append(";")
 12:     .Append("DATA SOURCE=")
 13:     .Append(MapPath(txtDataSource.Text.Trim()))
 14:   End With
 15:   Dim con As New OleDbConnection(sbConnectionString.ToString())
 16:   lblMessage.Text = _
 17:     String.Format("<b>ConnectionString</b>:{0}<br>", _
 18:     con.ConnectionString)
 19:   con.Open()
 20:   If con.State = ConnectionState.Open Then
 21:     lblMessage.Text &= _
 22:       String.Format("<b>ConnectionState</b>:{0}<br>","Open")
 23:   End If
 24:   con.Close()
 25:   If con.State = ConnectionState.Closed Then
 26:     lblMessage.Text &= _
 27:       String.Format("<b>ConnectionState</b>:{0}<br>","Closed")
 28:   End If
 29: End Sub

 

ADO.NET Accessのホームへ戻る