いろいろ技術的メモ

仕事に差し障りない範囲で、関連ネタなど…

ADO.net 覚え書き

今回、ちょっと縁あってADO.netを触ったのだけど、ざっとwebのサンプルを見ていくと、無駄に複雑な実装を頻繁にみかける。


それが実装目的に照らして意図通りであれば問題ないのだけど、旧来のDB接続モデルであるところの、connectionをApplicationレベルで保持して、SQLを書いてしまって、selectやinsertやupdateを必要に応じて発行する流れ(ex: VB.net以前からの移植等)であれば、この複雑性は不要。


一例として select文発行については、以下の流れでOK。

Public Function execSelect(ByVal sql As String, ByRef cn As OleDbConnection) As DataTable
    Using da As New OleDbDataAdapter(sql, cn)
        Dim dt As New DataTable()
        da.Fill(dt)
        Return dt
    End Using
End Function


また、insertやupdate、deleteなどの発行であれば、以下。

    Dim cmd As OleDbCommand = cn.CreateCommand()
    cmd.CommandType = CommandType.Text
    
    :

    cmd.CommandText = sql
    cmd.ExecuteNonQuery()


まだ把握しきってないので、結果を保証するものではないのだが、旧来のDB接続モデルで必要十分なアプリについては、このレベルで良いと思われる。DataTableはfilter近似の関数(.Select メソッド)もあり基本的な操作が一通り出来、DataGridViewに設定して表示することも可能。そして余計な処理や変数を記述する必要がない。