Archive for 9月 1st, 2012

  1. Hello, LINQ(VB.NET) World!

    Posted on 9月 1st, 2012 by cx20

    LINQ(VB.NET)

    LINQ(Language Integrated Query : 統合言語クエリ)は、.NET 言語から DBMS や XML にアクセスする為の汎用クエリ機能である。
    LINQ プロバイダとして、以下のようなものがある。

    LINQ プロバイダ 説明
    LINQ to SQL SQL Server
    LINQ to XML XML ドキュメント
    LINQ to Dataset ADO.NET データセット
    LINQ to Objects .NET コレクション、ファイル、文字列など

    ソースコード(VB.NET + LINQ to SQL)

    ''' -- <事前準備>
    ''' -- 1. テーブル作成
    ''' CREATE TABLE HELLO
    ''' (
    '''     ID      INT         NOT NULL,
    '''     MESSAGE VARCHAR(50) NULL,
    '''     PRIMARY KEY (ID)
    ''' );
    ''' -- 2. データ投入
    ''' INSERT HELLO ( ID, MESSAGE ) VALUES ( 1, 'Hello, LINQ World' );
    ''' -- 3. データ表示
    ''' SELECT * FROM HELLO;
    ''' -- ------------------
    ''' ID MESSAGE
    ''' -- ------------------
    '''  1 Hello, LINQ World!
    ''' -- ------------------
     
    Imports System
    Imports System.Linq
    Imports System.Data.Linq
    Imports System.Data.Linq.Mapping
     
    Public Class HelloDataContext 
        Inherits DataContext
        Public Sub New( ByVal connectionString As String )
            MyBase.New(connectionString)
        End Sub
        Public Hello As Table( Of HelloTable )
    End Class
     
    <Table(Name := "Hello")> _
    Public Class HelloTable
        <Column(IsPrimaryKey := True)> _
        Public Id As Integer
        <Column()> _
        Public Message As String
    End Class
     
    Class Hello
        Shared Sub Main()
            Dim conStr As String = "SERVER=(local);" _
                & "DATABASE=Hello;" _
                & "UID=sa;" _
                & "PWD=P@ssW0rd"
            Dim db = New HelloDataContext( conStr )
     
            Dim q = 
                from h In db.Hello
                Select h
     
            For Each h In q
                Console.WriteLine(h.Message)
            Next
        End Sub
    End Class

    コンパイル方法(VB.NET + LINQ to SQL)

    C:¥> vbc Hello.vb

    実行結果

    Hello, LINQ World!