標準クエリ演算子の概要
標準クエリ演算子は、統合言語クエリ (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#)の最新記事】
- Replit : cs-list
- C# : Excel の新しいブックのデフォルトのシートのセルに直接値をセットして、オートフィルを Range オブジェクトから実行する
- C#( Form ) : ウインドウ枠の無い吹き出しの作成
- C# のタプル( Visual Studio 2017 でテスト )
- C# : インターネット上の JSON ファイルのフォーマットを クラスとして定義して1行でオブジェクト化して使用する
- C# の文法的文字列処理
- C# : System.Data.Odbc によるデータベースのテーブルからのデータ取得処理( サンプルの SQL は MySQL 用です )
- C# : Excel を データベースとして DataGridView に読み込む
- C# : dynamic 型 による Excel へのアクセス
- C# : フォームを表示せずに、通知領域にアイコンを表示させる常駐プログラム
- Microsoft Access に対してSQLを入力してその結果を DataGridView に表示する最も簡単なコード
- C# : System.Data.Odbc データ取得(SELECT)処理( MySQL ) : ※ using 無し( Dispose 実行 )
- C# : SQL 文を外部テキストにして、String.Format でデータ部分を置き換えて利用する
- C# コンソールアプリを AN HTTPD で実行
- C# : SQLServer( SQLExpress ) の SMO を使用してテーブルの CREATE TABLE 文 を取得する
- C# : DataGridView に TKMP.DLL の IMAP(POP3) で受信したメールを非同期に表示する( 添付ファイルも取得 )
- C# : TKMP.DLLを使った、メール送信テンプレート
- C# と VB.net : TKMP.DLL を使って IMAP でメール本文の一覧を取得する( コンソール )
- C# でDataTable と DataSource を使用して、DataGridView にデータを表示するテンプレート( 行をダブルクリックしてダイアログを表示して行データを処理 )
- (C#) / VS2010 または VS2012 : TKMP.DLL(3.1.2 または 3.1.8)を使った、『さくらインターネット』用メール送信テンプレート






