SQLの窓

2013年10月18日


VS2010(C#) : データベースを System.Data.Linq.DataContext で読み込んでからの LINQ

標準クエリ演算子の概要
標準クエリ演算子は、統合言語クエリ (LINQ) パターンを形成するメソッドです。 ほとんどの場合、そのメソッドの操作の対象はシーケンスです。シーケンスとは、IEnumerable インターフェイスまたは IQueryable インターフェイスを実装している型を持つオブジェクトのことです。 標準クエリ演算子には、クエリ機能が用意されています。たとえば、フィルター処理、射影、集計、並べ替えなどです。
データベースへのアクセスは SQL で実行しておいて、メモリにあるデータに対して LINQ を使用します。文字列の比較の為に、メソッドを一つ追加しています。 変数名に日本語を使用しているのは、テーブルの列定義が日本語の為です。変数を 英数字にするには、SELECT 構文で列に別名を付けて、格納用のクラスをその名前にします。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Data.Odbc;
using System.Data.Linq;
using System.Data;

namespace DataContextTest {

	class Program {
		static void Main(string[] args) {

			OdbcConnection cn = null;
			string cs = "Driver={MySQL ODBC 5.2w Driver};" +
						"Server=localhost;" +
						"Database=lightbox;" +
						"Uid=root;" +
						"Pwd=password;";
			try {
				cn = new OdbcConnection(cs);
				// System.Data.Linq を参照
				DataContext context = new DataContext(cn);

				// select * from 社員マスタ で動作します
				string query = String.Format("select 社員コード,氏名 from 社員マスタ");

				// シーケンスとは、IEnumerable<T> インターフェイスまたは
				// IQueryable<T> インターフェイスを実装している型を持つオブジェクト
				IEnumerable<Syain> tables = context.ExecuteQuery<Syain>(query);

				var q =
				  from s in tables
				  where comp(true,s.社員コード,"0005")
				  select s;

				foreach (var s in q) {
					Console.Write("{0}, {1}\n", s.社員コード, s.氏名);
				}

			}
			catch (Exception ex) {
				Console.WriteLine(ex.Message);
			}

			if (cn.State == ConnectionState.Open) {
				cn.Close();
				cn.Dispose();
			}

			Console.ReadLine();
		}

		// 文字列比較用
		public static bool comp(bool type,string a, string b) {

			if (a == b) {
				return true;
			}

			if (a.CompareTo(b) < 0) {
				return !type;
			}
			else {
				return type;
			}
		}

		private class Syain {
			public string @社員コード { get; set; }
			public string @氏名 { get; set; }
		}
	}
}




【VS(C#)の最新記事】
posted by lightbox at 2013-10-18 22:42 | VS(C#) | このブログの読者になる | 更新情報をチェックする
バッチ処理

Microsoft Office
container 終わり

フリーフォントで簡単ロゴ作成
フリーフォントでボタン素材作成
フリーフォントで吹き出し画像作成
フリーフォントではんこ画像作成
ほぼ自由に利用できるフリーフォント
フリーフォントの書体見本とサンプル
画像を大きく見る為のウインドウを開くボタンの作成

Android SDK ポケットリファレンス
改訂版 Webデザイナーのための jQuery入門
今すぐ使えるかんたん ホームページ HTML&CSS入門
CSS ドロップシャドウの参考デモ
Google Hosted Libraries
cdnjs
BUTTONS (CSS でボタン)
イラストAC
ぱくたそ
写真素材 足成
フリーフォント一覧
utf8 文字ツール
右サイド 終わり
base 終わり