ぽにょろん

思いついたこととメモ

C#

NPOIでセルの値を文字列で取得する(C#)

忘れたいシリーズということで、ブログに残すことで頭から追い出したいというトピックです。 目次 目次 TL;DR 検証環境 NPOIとは Install-Package ファイル読み込み セルの値を文字列化 xlsxの入力値を全部参照 困ったときは TL;DR Excelファイルをprogramma…

WPF / DataGridでデータがNullの場合の表示について

WPFのDataGridでCellにバインドされているデータがNullの場合に、あれこれ表示を切り替えたかったのですが、手間取ったのでメモしておきます。 曲者はこいつでした。 AutoGenerateColumns="True" 目次 目次 実現したいこと 解決策 AutoGenerateColumns="Fals…

C#でFirebirdのストアドを書く

本エントリは、Firebird AdventCalender 2016 の14日目です。 今回は、Firebirdの.NET ProviderのコミッターであるJiri Cincura氏がブログで公開している、FbNetExternalEngineについて書きます。 目次 目次 FbNetExternalEngineってなに? 簡単な例 実装 検…

WPFでRadioButtonにEnumをBindする

目次 目次 環境 実現したいこと 実装の方針 実装 Converter VMとEnum View 環境 C# + WPF .NET Framwork4.5.2 実現したいこと RadioButtonにViewModelのプロパティ値(Enum)をBindする。 実装の方針 各RadioButtonのIsCheckedにEmun値をバインドさせる。 Conv…

Firebird .NETProviderで実行計画を取得する

目次 目次 環境 実装 実行計画の見方 環境 C# Firebird .NET Data Provider 実装 FBCommandクラスにCommandPlanメソッドがあるので、それを呼び出すだけです。 using (var con = new FbConnection("接続文字列")) using (var command = con.CreateCommand())…

AvalonEditをTabControlでつかう

自作ツールのTabControlのContentにAvalonEditを導入しようとしたところ、 思いの外苦戦したので記録しておきます。 目次 目次 環境 問題点 解決 環境 C# (.NET Framwork 3.5) WPF VS2015 AvalonEdit version="5.0.3" 問題点 TabControlでTabを切り替えた時…

AvalonEditを使って、SQL文にSyntaxHighlightつけたい

自作ツールにFirebirdのSQL文を入力した際に、SyntaxHighlightできるようにしたい! ということで、AvalonEditを使ってみました。 目次 目次 環境 AvalonEditとは 実装 ライブラリの取得 エディタの配置 SyntaxHighlight の設定 SyntaxHighlight のカスタマ…

同一プログラムからFirebird2.5と3.0のDBにアクセスしたい

同一プログラムからFB3とFB2.5にアクセスするシナリオを考え、サンプルを作ってみました。 目次 目次 環境 課題 ODSバージョンの取得 structを使うパターン 必要なところだけ変換 比較 FB3とFB2.5の共存 解決 環境 C# (.NET Framwork 4.5.2) VS2015 Firebird…

Firebird3.0でEmbedded試してみた

昨日(4月19日)、Firebird3.0(以下FB3)が正式にReleaseされました。 www.firebirdsql.org せっかくなので、FB3でのEmbedded接続を試してみました。 C#です。 目次 目次 今回試した環境 FB2.5からの大きな変更点 Firebirdのバイナリを取得 必要なDLLをコピー …

c#からFirebirdのDBにアクセスした後、Exeの終了が遅い。その2。

Firebird Embeddedを使用した後、プロセスの終了が遅い件ですが、 その後色々調べたところ、似たような件で悩んでいる人はいるようでした。 stackoverflow.com ただ、解決にはいたっていないようです。 試しに FbConnection.ClearAllPools() がどれくらい効…

c#からFirebirdのDBにアクセスした後、Exeの終了が遅い

c#からFirebirdのDBにアクセスした後のExeの終了が遅いということがありまして、少し調べてみました。 結論が正しいのかわかりませんがメモとして残しておきます。 ※検証甘いです。 環境 現象 分析 解決策(??) 環境 Firebird Embedded 2.5.4 FirebirdSql.Dat…

.NET Framework 4.5.2 でXmlReaderのDTD読み込みの挙動が変わっていた

以前、少しはまってしまったので、メモしておきます。 先に解決策書いておくと、ちゃんとXmlResolverのインスタンス作成しておきましょう!です。 問題点 解決 ソースサンプル 問題点 TargetFramworkを4から4.6に上げた際に、DTDの外部実体参照が読み込まれ…

c# で default(T) した時の値

default(string) が Null なのをよく忘れるので、 default(T) の値をまとめてみました。 class Program { static void Main(string[] args) { $@"dyte: {default(byte)}".Dump(); //0 $@"sbyte: {default(sbyte)}".Dump(); //0 $@"int: {default(int)}".Dump…

T-SQLでOUTPUT句を使う

OUTPUT句って結構便利だと思っているんですが、そうそう使わないこともあってなかなか覚えられないorz そんなわけでサンプルを書いてみました。 まずは書き方 何はともあれ、MSDN参照しましょう。 OUTPUT 句 (Transact-SQL) SQLServer2005から使えるようです…

C#でファイルのウイルスチェックをする

C#

最近、ファイルのウイルスチェックをコードでやりたいといった会話をしたので、少し調べてみました。 結果、IAttachmentExecuteなるものを利用するとやりたいことが出来そうということが分かりました。 IAttachmentExecute interface (Windows) 必要な定義は…

C#でFirebird Embedded を使う。

仕事の関係でFirebird Embeddedを使用することが増えたので、C#からのアクセスを試してみました。 用意する環境 Firebird ADO.NET Data Provider Firebird Embedded fbembed.dll ib_util.dll icudt30.dll icuin30.dll icuuc30.dll Firebird ADO.NET Data Pro…