msnet_logp1.jpg
データグリッドに抽出条件によって抽出されたデータを表示している際に、データグリッドに設定されている抽出条件を使ってCommandオブジェクトを実行する方法について覚書。
スポンサードリンク


サンプルプログラムについて

データグリッドに設定されている抽出条件と同じ抽出条件でCommandオブジェクトを実行したい場合、Commandオブジェクトに設定するSQL文のWhere以降にMe.データグリッドコントロール名.DataSource.Filter を文字列結合すればよい。

以下にVB.NETのサンプルプログラムを記載する。
Dim con As OleDb.OleDbConnection = New OleDb.OleDbConnection(My.Settings.NorthwindConnectionString)

  con.Open()

  Dim cmd As New OleDb.OleDbCommand

  cmd.Connection = con

  If Me.社員DataGridView.DataSource.filter Is Nothing Then
     'フィルターがかかっていなかった場合の処理
     cmd.CommandText = "SELECT * FROM 社員"
  Else
     cmd.CommandText = "SELECT * FROM 社員 Where " & Me.社員DataGridView.DataSource.filter
  End If


  Dim dr As OleDb.OleDbDataReader = cmd.ExecuteReader
    If dr.HasRows Then
       Do While dr.Read
          Debug.Print(dr("社員コード").ToString + vbTab + dr("氏名") + vbTab + dr("部署名"))
       Loop
    Else
       MsgBox("データなし")
    End If

  dr.Close()
  con.Close()


スポンサードリンク

  

関連記事