Linqを使ったクエリ操作は、以下の3つの手順を踏む
[1] データソースを取得する
[2] クエリを作成する
[3] クエリを実行する
サンプル
事前準備
[1] SQL Serverにおいて、以下「サンプルテーブル」のようなテーブルを作成しておき、データを追加しておく
[2] Visaul Studioにおいて、作成したプロジェクトを右クリックし、[追加]-[新しい項目]を選択
[3] 事前準備[2]で作成した「Linq to SQLクラス」のアンカー「サーバーエクスプローラ」をクリック
[4] 事前準備[1]で作成したテーブルをドラッグ&ドロップする
サンプルテーブル
【テーブル名】
person
【項目】
PersonId long
Name nvarchar(50)
Address nvarchar(100)
データ追加用SQL
INSERT INTO Person
(PersonId, Name, Address)
VALUES
(1, 'Mike', 'NY city 3Chome');
INSERT INTO Person
(PersonId, Name, Address)
VALUES
(2, 'Tom', 'London 5Chome');
INSERT INTO Person
(PersonId, Name, Address)
VALUES
(3, 'Naomi', 'Sydney 1Chome');
Windows Formに、「ボタン(button1)」、「テキストボックス(textBox1、PersonId を選択できるよ用)」、「ラベル(label1、結果表示用)」を追加
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.Linq; // 新規追加
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string result = string.Empty;
// 新規で追加したDataClassを参照できるようにするために
// DataClasses1DataContextクラスをオブジェクト化する
var db = new DataClasses1DataContext();
// DataClassにあるPersonテーブルにあるデータ取得のためのクエリ式作成
var query = from n in db.person
where n.PersonId == Convert.ToInt64(textBox1.Text)
select n;
foreach (var m in query)
{
result += string.Format("{0} {1} {2}"
, m.PersonId
, m.Name
, m.Address);
}
label1.Text = result;
}
}
}