tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル ADO-NETによる複数キーの存在チェック
投稿日: 2012/06/16(Sat) 10:40
投稿者かっちゃん
前回は助かりました。
ありがとうございます。
今度はADO-NETによる質問です

ADO-NETを使用した場合の複数キーでの存在チェクは
どのようなロジックにしたら適切なのでしょうか

VB6.0でADOを使用した時のチェックロジックは下記のように
一度データを読み込んだのでFINDで検索して存在チェックを
してきましたが、ADO-NETの場合はどのようになるでしょうか

**ADO(VB6.0)の場合**
   Private rsALibraryM As ADODB.Recordset
   wkstrSql = "select *  from LibraryM ORDER BY Kubun Asc, Category Asc, keyword Asc, LibraryNa Asc"
   rsALibraryM = New ADODB.Recordset
   rsALibraryM.Open(wkstrSql, CN, ADODB.CursorTypeEnum.adOpenStatic, ADODB.LockTypeEnum.adLockOptimistic)
' ファイル存在チェック
Private Function SonzaiCheck(ByRef bytValue As Byte) As String
   If Not (rsALibraryM Is Nothing) Then
      If rsALibraryM.RecordCount = 0 Then
         MSGBOX("データが一件もありません")& KaOBJ.MsgItem
         Exit Function
      End If
    ' ファイルを読む
      With rsALibraryM
          .MoveFirst()
           If .Fields("Kubun").Value <> TEXT1 Then
              .Find("Kubun = " & TEXT1 & " ", ,ADODB.SearchDirectionEnum.adSearchForward)
           End If
           Do Until .EOF = True
              If .Fields("Kubun").Value = TEXT1 Then
                 If .Fields("Category").Value = TEXT2 Then
                    If .Fields("keyword").Value = TEXT3 Then
                       If Trim(.Fields("LibraryNa").Value) = TEXT4 Then
                          wkSonzai = 1  '存在
                          Exit Do
                         Else
                          If Trim(.Fields("LibraryNa").Value) > TEXT4 Then
                             wkSonzai = 0  '存在しない
               Exit Do
                          End If
                       End If
                      Else
                       If .Fields("keyword").Value > TEXT3 Then
                          wkSonzai = 0  '存在しない
                          Exit Do
                       End If
                    End If
                   Else
                    If .Fields("Category").Value > TEXT2 Then
                       wkSonzai = 0  '存在しない
                       Exit Do
                    End If
                 End If
                Else
                 If .Fields("Kubun").Value > TEXT1 Then
                    wkSonzai = 0  '存在しない
                    Exit Do
                 End If
              End If
             .MoveNext()
          Loop
      End With
     Else
      MSGBOX ("ライブラリマスターがアクティブになっておりません")
   End Select
End Function

**ADO-NETの場合**
' コネクションセット
   wkCNN.ConnectionString = glstrCnpath
   wkCMD.Connection = wkCNN
   wkCNN.Open()
  'データソースで実行するSQL文の設定
   wkstrSql = "select *  from LibraryM ORDER BY Kubun Asc, Category Asc, keyword Asc, LibraryNa Asc"
   Dim wkAdp1 As New OleDb.OleDbDataAdapter(wkstrSql, wkCNN)
  'データを取得する
   wkAdp1.Fill(wkDS, "LibraryM")
   dgdGrid.Columns.Clear()
  'データグリッドに表示するデータソースを設定
   dgdGrid.DataSource = wkDS
   dgdGrid.DataMember = "LibraryM"
' ファイル存在チェック
Private Function SonzaiCheck(ByRef bytValue As Byte) As String

End Function

よろしくお願いいたします  
  

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。