天の声が囁いた。
~ADODBを使いなさい~
なんですと!?
そんなわけでふつーのモジュールで慌てて書き換えてみた。
- Private Function Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
- Dim OnOK As Boolean = True
- Dim cn As ADODB.Connection
- Dim rs As ADODB.Recordset
- Dim i As Integer = 0
- cn = New ADODB.Connection
- rs = New ADODB.Recordset
- cn.Provider = "Microsoft.Jet.OLEDB.4.0;"
- cn.Properties("Data Source").Value = "\\LANDISK1\share\Test.mdb"
- Try
- cn.Open()
- rs.Open("T_Master", cn, ADODB.CursorTypeEnum.adOpenKeyset, ADODB.LockTypeEnum.adLockReadOnly)
- Do Until rs.EOF
- Debug.Print (rs.Fields(1).Value)
- rs.MoveNext()
- Loop
- rs.Close()
- cn.Close()
- Catch ex As Exception
- OnOK = False
- Debug.Print ("ERROR")
- End Try
- Return OnOK
- End Function
こっれがさーー、例が無いのよ…
VB6時代のんとか、dao使った例とかはゴロゴロしてるんだけど、
Setステートメントとか、ボク環境の…コレ、VB.net?はSetとかLet廃止~とか…
丸写しで動くモンが全く無くて、結局MSDN読み解いた…
で、トドメは、Recordsetの内容参照方法。
なんか普通に、rs.Fields(0)とか、rs.Fields("名前")とか、rs!名前とかで参照できてるんだよね。Exampleは。
でも何故かできない…で、.netへの変更点で、なんかVB6までは省略出来たPropertyとかを、.netでは、明示的にやんないとダメ…とかなんとか書いてあったの思い出して…
後ろに.valueつけたら動いた(*゚-゚)
まぁおかげで、スペースが入ってるProperty名への文字列設定方法とかみっけたからいっか。
ちなみに、フィールド名で参照するより、Index…数値で参照したほうがDirectなので速いそうです。
0 件のコメント:
コメントを投稿