未分類

C# MS Access データベースを LINQ を使ってアクセスする

準備

1. こちらを参考にして、Access 2007 用の Northwind.accdb を用意します。
2. Nwind.accdb ファイルをソリューションエクスプローラーのプロジェクトノードにドラッグ & ドロップします。
- データセットを選択して、[次へ] をクリックします。
- テーブルから Employees を選択して、[完了] をクリックします。

デザイン

1. フォーム (Form1) にボタン (button1) を配置します。
2. フォーム (form1) に BindingSource (bindingSource1) を配置します。
3. BindingSource (bindingSource1) のプロパティを変更します。
- DataSource: northwindDataSet
- DataMember: Employees
4. フォーム (Form1) にリストボックス (listBox1) を配置します。

サンプルコード (C#)

// 名前空間の追加
// (なし)

// コード
private void button1_Click(object sender, EventArgs e)
{
  NorthwindDataSet.EmployeesDataTable dt = new NorthwindDataSet.EmployeesDataTable();
  employeesTableAdapter.Fill(dt);
  
  var rec =
  from n in dt
  select n;
  
  foreach (var r in rec)
  {
    Console.WriteLine(r.Last_Name);
  }
  
  Console.WriteLine(rec.Count());
}

解説

O/R マッピングにより、データベースに接続しています。これは NorthwindDataContext クラスによって行われています。データの更新は、まず LINQ により更新対象データを絞り込み query に保存します。

その後、Query 内の削除したい行を削除します。

最後に SubmitChanges メソッドを実行して削除を確定します。

結果

動作確認環境

Visual Studio 2015 Professional (C# 6.0)

-未分類