2008年10月08日

ASP.NET アクセスデータにアクセスする(コーディング)

 「アクセスのデータベースにアクセスする。」で、AccessDataSourceを使用して、アクセスのデータベースにアクセスする方法を掲載しました。

 単純にデータを取得するんであれば、この方法でよいのですが、取得したデータを何か加工したいなどの要望があると、ちょっとむつかしいんですよね。(私だけかもしれませんが。。。。)

 コーディングでデータベースへアクセスすれば、ある程度自分の意思に従ってデータを操作できるだろうと思うんですがねぇ。。。。

 私がよく使うのは、DataSetです。
 DataSetにデータを取得し、その中の情報を別に取得するとか、そのままデータグリッドに表示させるとか。。。。

 ま、私が単になれているだけなんですけど。

 で今回は、コードでデータベースへアクセスしようということです。

 配置させるGridViewは、単に配置させた状態なので、他のプロパティなどは一切触っていません。

 コードは・・・・・

>>>


>>>
以下、そのままズバリのコードを載せておきます。

<コード>
======================================================
  'ボタンを配置し、クリックイベントのときに
  'GridViewにデータをバインドさせる。
  Protected Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

    'SQL文を作成。
    Dim sqlstring As String = "SELECT * FROM T_Test"
    'DataSetを用意
    Dim dataset As DataSet

    '関数を実行。
    dataset = data(sqlstring)

    'GridViewのデータソースにdatasetを指定。
    GridView3.DataSource = dataSet
    'バインドさせる。
    GridView3.DataBind()

End Sub

'ここから関数
  'データベースにアクセスする関数。
  'コードでデータベースにアクセスする。
  Function data(ByVal sql As String) As DataSet

    Dim ProviderName As String = "System.Data.OleDb"
    Dim ConnectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
      "Data Source=|DataDirectory|\test.mdb;" & _
      "Persist Security Info=True"

    Dim myProvider As System.Data.Common.DbProviderFactory = _
    System.Data.Common.DbProviderFactories.GetFactory(ProviderName)
    Dim myConnection As System.Data.Common.DbConnection = myProvider.CreateConnection()

    myConnection.ConnectionString = ConnectionString
    myConnection.Open()

    Dim myAdapter As System.Data.Common.DbDataAdapter = myProvider.CreateDataAdapter()
    Dim myCommand As System.Data.Common.DbCommand = myProvider.CreateCommand()
    Dim myQuery As String = sql
    Dim dataSet As DataSet = New DataSet()

    myCommand.Connection = myConnection
    myCommand.CommandText = myQuery
    myAdapter.SelectCommand = myCommand
    myAdapter.Fill(dataSet)

    'DataSet型で値を返す
    Return dataSet

  End Function
======================================================


DataSetで返してきますので、帰ってきたDataSet内のデータに、以下のようにすれば直接アクセスすることが出来ます。

 dataSet.Tables(0).Rows(0).Item(1).ToString

SELECT文を駆使して、欲しいデータを取得するのも一つの手でしょうが、DataSetで直接データを取りに行く方が簡単に思うんです。

色々な方法はありますがね。





posted by Debring at 16:51 | Comment(0) | TrackBack(0) | ASP.NET データアクセス
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:


この記事へのトラックバック
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。