LINQ でSQLサーバに接続 VB2008

VB Tips And Sample(HOME)(VB.NET Sample インデックス)

LINQ でSQLサーバに接続 VB2008


遅まきながら、LINQでSQLServer2008に接続してみる。
環境は、VS2008+win7(64bit)

空のプロジェクトに、dbmlファイルを追加作成する。
ソリューションを右クリックして、新規追加してやればコードを一行も打つ必要が無い。
ここら辺は、2005でテーブルのスキーマを作成する場合とちょっと似ている。
そして、GUIでSQLサーバーを参照して、テーブルをドラッグドロップすれば、出来上がる。
操作の説明画像は以下の二枚。
linqの作業手順
dbmlファイルを作成
これが終われば、フォームにボタンを一つ貼り付けて、
下記のコードを書く。
出来上がり。

Imports System.Data.SqlClient 'これをインポートしておくとコードが長ったらしくならなくて済む
Imports System.Data.Linqリンクを使うときは必要
Public Class Form1

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        ' データベースを読み込む
        Dim cnn As New SqlConnection()
        ''コネクションストリングを設定
        cnn.ConnectionString = "user id=newsa;password=;initial catalog=Northwind;data source=(local);Connect Timeout=30"

        下記では接続できなかった
        'Dim db As New DataContext("C:\Program Files\Microsoft SQL Server\MSSQL10.WIN7\MSSQL\DATA\NORTHWND.MDF")
        Dim db As New DataContext(cnn)

        Dim Cate As Table(Of Categories) = db.GetTable(Of Categories)()

        ' クエリを実行
        Dim q = From p In Cate Where p.CategoryName Like "*"
        ' クエリ結果を表示

        For Each n In q
            Debug.Print(n.CategoryName)
        Next
    End Sub
End Class



まだLINQの全貌を知らないので何とも判断しかねるが、こと、データベースに関しては、あまり使わないのでは?
と思う。
GUIでスキーマを作成して・・・・と言うのが面倒しい。また、ソースの見通しが悪くなる?
いやいや、一番のネックはトランザクションとかがどうなるのかが全く知らない(勉強不足!)ため、直ぐには使えないというところ。

LINQは他にも、フォーム上のコントロール一覧を簡単に取得できるなど、まだまだ機能が多いのでその方で活用できるのでは?

VB Tips And Sample(HOME)(VB.NET Sample インデックス)