2012-01-01から1年間の記事一覧

【C#】【Linq】Linq で LIKE句 を表現する

Linq で LIKE句 前方一致 * StartsWith() を使用する サンプル // 店舗クラス class Shop { public int ShopId; public string ShopName; } private void button1_Click(object sender, EventArgs e) { var shops = new[] { new Shop() {ShopId = 1, ShopNam…

【C#】【Linq】Linq で IN句 を表現する

Linq で IN句 * ちょっと特殊なやり方ですが、Contains()を使って、IN句を表現できる 構文 var 【結果】 = 【対象のリスト】.Where(x => new[] {【IN句の条件リスト】}.Contains(【対象の項目】)); // 以下のように、分けても書ける(この方が分かりやすいか…

【C#】【Form】MaskedTextBox

■ MaskedTextBox * 数字しか入力したくない等、入力を制限したい時に使用(こんな「____/__/__」感じで) * デフォルトで「郵便番号」「日付時刻」「電話番号」が用意されている。(以下、参照) http://www.labasp.net/CsharpNote/mControl/MaskedTextBox/1…

【C#】【Form】DateTimePicker [2] ~ Null値を許容 ~

■ Null値を許容するDateTimePickerコントロール 以下を参考にした http://japan.internet.com/developer/20050822/25.html http://social.msdn.microsoft.com/forums/en-US/winforms/thread/ee0c5fbe-8d18-4899-8df2-46535b570bb4/ ■ サンプル class Nullabl…

【C#】継承 [2] (インターフェース・interface)

C#

インターフェイスについて * インターフェイスとは、「外部との窓口」という意味。 意義・利点 * インターフェイスを実装することにより、外部クラスからのアクセスを直接行わせたくない場合、 インターフェイスを介し、アクセスさせる。 →クラス内部を隠蔽…

【.NET】パフォーマンス調査ツール ~処理速度編~

処理速度調査ツール * EQATEC Profiler ... コールグラフ、関数の呼び出し回数、時間まで表示 * NProf ... 各関数の呼び出し時間の比率が表示 EQATEC Profiler * メモリを測定するものではないことに注意 ダウンロード http://www.eqatec.com/Profiler/Downl…

【C#】sealed キーワード ~ 継承禁止 / パフォーマンス向上 ~

C#

■ sealed キーワード * 「sealed(シールド)」は「封印された」って意味 * sealedクラスは継承不可 => Java でいう final => 継承しようとするとコンパイルエラー => 拡張を他者にしてほしくない場合は sealed キーワードを付けるべき http://msdn.microsof…

【SQL Server】実行プランの削除 ~ DBCC FREEPROCCACHE ~

全ての実行プランを削除 構文 DBCC FREEPROCCACHE WITH NO_INFOMSGS; 補足説明 * WITH NO_INFOMSGS 句を指定して、情報メッセージが表示されないようにする 特定の実行プランを削除 構文 SELECT plan_handle, st.text FROM sys.dm_exec_cached_plans CROSS A…

【.NET】メモリ管理 ~知識編~

.NET アプリケーションのメモリ種類 [1] スタック(ローカル変数を保持するための空間。容量が比較的小さい。) [2] ヒープ(参照型のデータのインスタンスを保持するための空間。容量が非常に大きい。) [2-1] アンマネージ ヒープ [2-2] マネージ ヒープ C…

【.NET】パフォーマンス調査ツール ~メモリーリーク編~

メモリーリーク調査ツール ★:良さそうなツール * OS付属のパフォーマンス・カウンタ・モニタ ... コントロール・パネルの「管理ツール」内に、パフォーマンス・カウンタのモニタ・ツール ★ Microsoft Application Verifier (AppVerifier) ... メモリ使用量…

【トラブル】【MSMQ】メッセージキュー に関するトラブルシューティング

■ 例外「メッセージキューシステムへのアクセスが拒否されました」が発生 概要 * MessageQueueException例外「メッセージキューシステムへのアクセスが拒否されました」が発生する * どうやらアクセス権限がないためらしい 対応策 (1) [コントロールパネル]-…

【C#】IPアドレス に関する処理

■ IPアドレスを取得する サンプル sing System; using System.Net; using System.Windows.Forms; using System.Linq; using System.Net.Sockets; namespace SampleForm { public partial class Form1 : Form { public Form1() { InitializeComponent(); } pr…

【プロジェクト管理】工期短縮手法

ファストトラッキング(fast tracking) * 要するに、まだ仕様が完全に固まっていないけど,できるところから作る手法 デメリット * ファストトラッキング開始後、前工程で大きな仕様変更などが発生すると、 次工程の完了部分がやり直しになる可能性がある …

【C#】【Linq】Linq を使う上での作法

Where をできる限り先に記述する * パフォーマンスを考慮して、Where は、できる限り、先に記述する

【SQL】データ型/文字列編 (char型 / varchar型 / nvarchar型)

char 型 / varchar 型 / nvarchar 型 char 型 * 固定長 * 最大長は8000バイト デメリット * 列の長さより短い値を格納した場合、足りない分まで空白が埋め込まれる (バグの原因になる。Trim()などで回避。) 例:char(10) と定義され、"music" というデータ…

【SQL】Window関数 ~ ROW_NUMBER ~

SQL

■ はじめに SQL文で、ページングを考える 目次 【1】ページング 1)実務的視点 2)技術的視点 【2】ROW_NUMBER 1)構文 2)補足:ROW_NUMBER + PARTITION BY 【3】サンプル 補足:使用しているテーブルについて 【1】ページング 1)実務的視点 * OR…

【SQL】Window関数 ~ RANK / DENSE_RANK ~

SQL

■ はじめに SQL で、順位付け・ランキングをする際に使用する RANK / DENSE_RANK について、学ぶ。 目次 【1】RANK / DENSE_RANK 1)RANK 2)DENSE_RANK 【2】RANK + PARTITION BY 【3】サンプル - SQL Server 使用しているテーブル 例1:顧客ごとの売…

【.NET】【MSDTC】分散トランザクションとMSDTC

用語説明 分散トランザクションとは? 分散トランザクションとは... * 複数のデータベース・サーバにまたがるトランザクション * .NETのTransactionScopeでは、複数のConnectionがOpenされた場合、自動的に分散トランザクションとして実行される →MSDTC(後…

【.NET】【MSDTC】例外「基本トランザクション マネージャとの通信が失敗しました」が発生

■ 現象 デバッグ中に、以下の例外が発生。 基本トランザクション マネージャとの通信が失敗しました。 MSDTC トランザクション マネージャーは、通信の問題のため、送信元のトランザクション マネージャーから トランザクションをプルできませんでした。 原…

【設計】【モデリング】ER図、DFD

■ はじめに UMLではないけど、設計に使用できるのでメモ。 ■ ER図 サンプル ┌────┐1 *┌────┐1 *┌────┐* 1┌────┐ │ 顧客 ├──┤ 注文 ├──┤注文詳細├──┤ 商品 │ └────┘ └────┘ └────┘ └────┘ ■ DFD DFD : Data Flow Diagram * データフローダイアグラム サンプル…

【SQL】 WITH句 ~ 共通テーブル式 ~

SQL

■ はじめに WITH についてメモ。 目次 【1】WITH 句 【2】使用可能なDB 【3】使用上の注意 【4】構文 【5】サンプル 例1:親子関係に使用 例2:最新データによる年間売上の増減 【1】WITH 句 * 共通テーブル式 (CTE, Common Table Expression) と呼…

【C#】【SQL】【Linq】Linq to SQL ~ストアド編~

サンプル テーブル Personテーブル CREATE TABLE [dbo].[Person]( [Id] [int] IDENTITY(1,1) NOT NULL, [Name] [nvarchar](50) NULL, [Address] [nvarchar](50) NULL, [Email] [nvarchar](50) NULL, [Age] [int] NULL ) ON [PRIMARY] Employeeテーブル CREAT…

【Windowsサービス】Windowsサービス ~ サービスのインストール etc ~

■ はじめに * 自分で登録したサービスを登録する場合、SCコマンドを使う ■ Windowsサービスのインストール 【1】scコマンドを利用する方法 【2】installutilコマンドを利用する方法 【1】scコマンドを利用する方法 構文 sc create 【サービス名】 binPath…

【C#】ガベージ・コレクション(Garbage Collection、GC)

概要 http://mzs184.blogspot.jp/2008/01/gc.html より抜粋 * ガベージコレクションは、あくまでも new したオブジェクトを解放してくれるもの => ファイルリソースやネットワーク接続リソースについては、Disposeなどで、 明示的に解放する処理を記述する必…

【C#】【Excel】Excelファイルを扱う ~ 入門編 ~

■ 準備 ソリューションエクスプローラの「参照設定」からExcelを追加する必要がある。 http://hwada.hatenablog.com/entry/20110530/1306719910 では、『「COM」タブのMicrosoft Excel 14.0 Object Library』ではなく 『「.NET」タブのMicrosoft.Office.Inte…

【SQL Server】bcpコマンド

概要 * bcp (Bulk Copy Program):一括コピープログラム * SQL Serverとデータファイルの双方向でのデータのやり取りが可能にする 使いどころ * データのインポート/エクスポートを行う場合 * データベースの内容をCSV化する場合 * SQL Server間のデータのコ…

【C#】【Form】オートコンプリート機能

■ TextBox * 以下、説明。 http://dotnetjp.blog106.fc2.com/blog-entry-529.html サンプル private void Form1_Load(object sender, EventArgs e) { var contryNames = new List<string>() { "Japan", "USA", "India", "UK", "Italy", "France", "Australia", }; //</string>…

【C#】【Form】メッセージボックス(MessageBox) / ダイアログ

■ 概要 今更だが、知らなかったこと等を中心に纏めておく。 ■ メッセージボックス サンプル private void button1_Click(object sender, EventArgs e) { DialogResult result = MessageBox.Show( "テストです", "警告", MessageBoxButtons.YesNo, MessageBox…

【C#】【SQL Server】SqlBulkCopy ~高速に大量データを挿入するには~

■ 用途 * SQL Serverのテーブルにデータを一括で読み込むことができる * しかも高速で。パフォーマンス向上に役立つ。(詳細は以下を参照のこと) http://d.hatena.ne.jp/re_guzy/20060108/p1 http://www.moonmile.net/blog/archives/2234 ■ 欠点 * 書き込み…

【SQL Server】クエリヒント / テーブルヒント

はじめに まずは、以下の動画をみた方がいい。 http://technet.microsoft.com/ja-jp/sql_5mins16-2.aspx 概要 ■通常は... 最適と思われる実行プランを、オプティマイザが選んでデータアクセスしてくれる 【問題点】 * オプティマイザは、必ずしも完璧じゃな…