Archive for the ‘LINQ’ Category

  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!
  2. Hello, LINQ World!

    Posted on 4月 8th, 2012 by cx20

    LINQ

    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 コレクション、ファイル、文字列など

    ソースコード(C# + LINQ to Objects)

    using System;
    using System.Linq;
    using System.Collections.Generic;
     
    class Record
    {
        public string Message;
        public Record(string message)
        {
            this.Message = message;
        }
    }
     
    class Hello
    {
        static void Main(string[] args)
        {
            Record[] records = new Record[]
            {
                new Record("Hello, LINQ World!")
            };
     
            IEnumerable<Record> query =
                from n in records
                select n;
     
            foreach (Record r in query)
            {
                Console.WriteLine(r.Message);
            }
        }
    }

    ソースコード(C# + 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!
    -- ------------------
    */
     
    using System;
    using System.Linq;
    using System.Data.Linq;
    using System.Data.Linq.Mapping;
     
    public class HelloDataContext : DataContext
    {
        public HelloDataContext(string connectionString) : base(connectionString) { }
        public Table<HelloTable> Hello;
    }
     
    [Table(Name = "Hello")]
    public class HelloTable
    {
        [Column(IsPrimaryKey = true)]
        public int Id;
        [Column]
        public string Message;
    }
     
    class Hello
    {
        static void Main(string[] args)
        {
            string conStr = "SERVER=(local);"
                + "DATABASE=Hello;"
                + "UID=sa;"
                + "PWD=P@ssW0rd";
            var db = new HelloDataContext( conStr );
            var q = 
                from h in db.Hello
                select h;
            foreach (var h in q)
            {
                Console.WriteLine(h.Message);
            }
        }
    }

    ソースコード(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

    コンパイル方法(C# + LINQ to Objects)

    C:¥> csc Hello.cs

    コンパイル方法(C# + LINQ to SQL)

    C:¥> csc Hello.cs

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

    C:¥> vbc Hello.vb

    実行結果

    Hello, LINQ World!