タイトル | : ADO-NETによる複数キーの存在チェック |
記事No | : 10840 |
投稿日 | : 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
よろしくお願いいたします
|