だらだらやるよ。

こげつのIT技術メモ

C#

ODBC経由で接続したデータベースから、テーブルの一覧を取得する

C#

今度はさっきの接続から、テーブルやビューの一覧を取得します。 この辺を参考にごにょごにょと http://msdn.microsoft.com/ja-jp/library/system.data.odbc.odbcconnection.getschema.aspx //OdbcConnection con; con.Open(); DataTable dt = on.GetSchema(…

ODBC接続のDSN一覧を取得する

C#

C#の組み込み関数でそんな便利なの物は存在しないみたい。 レジストリの中に情報あるからそっから拾う必要があるとのこと。とりあえず一覧表示して、接続するところまで作ってみました。 まずはDSN一覧の取得 string dsnKeyName = "SOFTWARE\\ODBC\\ODBC.INI…

generic型でクラス作ったら困ったこと

C#

親の型で受け取ってhogehoge、所謂ポリモフィズムが使えない。 generic定義したフォームを継承したフォームでデザイナが表示されない。 2つの関連するクラスの組を複数作るときに便利なんだけどな。。。はて

非genericクラスをgenericクラスで継承する

C#

最初どう書いたらいいかわからなくって5分くらいがんばったのでメモまずは普通の継承 public class ConcreteClass : ParentClass{ } ジェネリックにする public class ConcreteClass<T> : ParentClass{ } ジェネリックに対してwhereはこう書く TはGenericParent</t>…

Visual Studio ホスティングプロセスの有効にするかどうかで挙動が変わった

C#

Win32APIを必要とするプログラムを使用している場合 プロジェクト→プロパティ→Visual Studio ホスティング プロセスを有効にする チェックを外さないと うまく動かないものがあるようです。自分が確認したのはSetWindowsHookEx関数*1 他のプロセスへの入力な…

C#で非同期処理してみる。

C#

何回か書いてたのだけど、すぐ忘れるのでメモ代わりにまとめなんか色々方法はあるみたいだけど、とりあえず非同期デリゲートが簡単みたい。 というわけで書いてみた。 まずは非同期実行したい処理をメソッドに分割。 private void Test(){ for(int i = 0;i <…

VisualStudioのアドインからクラスを生成

http://d.hatena.ne.jp/nagakura_eil/20080420/1208628908 の続き。今日は作ったクラスにメソッドを追加してみました。 まずは前回追加したTestClassのFileCodeModelのインスタンスを取得します。 FileCodeModel2 fcm = (FileCodeModel2)dir.ProjectItems.It…

Sandcastleを試してみました

ちょこちょこ詰まったけど、とりあえずHTMLヘルプファイルの生成までできました。 というわけで、C#のソースコードからAPIドキュメントを作成する方法のまとめです。 作成した環境はVisualStudio2005です。まずSandcastleはCUIのツールなので、通常だとコマ…

めも

C#

CodeModelオブジェクトってやつを使えばメソッドの追加とかできるみたいだ ためしてみよーっと http://msdn2.microsoft.com/ja-jp/library/x6h10s6x.aspx

VisualStudioのアドイン作ってみた。

C#

といってもまだやりたいことはできず。できたとこまでメモ MSDNをうろうろしながらVS2008Proで作成中。 VisualStudioアドインプロジェクトの作成 新しいプロジェクトから、その他のプロジェクトの種類→機能拡張→VisualStudioアドインプロジェクトを選択。 ウ…

図書管理アプリケーション

C#

で、もともと作ろうとしてたこっちはというと とりあえずプラグインで生成するならこんな感じかなぁって設計を書きながら作っています。 CRUDはできてて、他の機能をどうするかといったところ。

おうちでプログラミング

C#

土曜日の夜中ちょっと時間が空いたので、久しぶりに家でソフト作ってみました。 最近家の本がどこ行ったかわからなくなってきたのでシンプルな書籍管理ソフトでも。。。 と思って作り出したのですが .NETからSQLiteに接続するのが面倒で、どうにかならないか…

C#からSQLiteを使ってみた。

環境はVS2005とC# SQLServerでデータのCRUDを行う際、SqlDataAdapterと型付データセットをウィザードを使って生成してたのですが SQLiteで同じことやろうとしてはまりました。 接続用のライブラリにはこれを使いました。 http://sqlite.phxsoftware.com/ ま…

プロジェクトにテキストファイルを埋め込む

C#

内部的にSQLiteなどで一時的なDBを使うときに、テーブル作成のSQL文をハードコーディングするのに飽きたので外に出してみました。 といっても、プロジェクトに埋め込んじゃったほうが気持ちがいいので、やり方は前画像を埋め込んだときと一緒。 ビルドアクシ…

やっとC#3.0の機能を一通り触り終わった。

C#

http://d.hatena.ne.jp/nagakura_eil/20080330 あとで書くために場所だけ確保していたのですが、内容をやっと埋め終わりました。次はデザイナに追加された機能を見ていこうかと思います。

C#3.0機能紹介その8。プロパティを自動的に実装

C#

クラスにプロパティを自動的に実装してくれます。 こんな感じ。 class Test { public string Test1 { get; set; } public string Test2 { get; private set; } //getとset両方記述する必要がある。 //public string Test3 { get; } } インスタンス変数(stati…

C#3.0機能紹介その7。式のツリー

C#

http://www.microsoft.com/japan/msdn/net/bb308966.aspx#csharp3.0overview_topic20 を見たのだけど解説が詳しくない。。。 とりあえずこういうものとして覚えておくけど、実際にどこでどう使えばいいのかわかりません。。。くすん。 サンプルコードはこん…

C#3.0機能紹介その6。クエリ式

C#

LINQという機能の中で使用されます。 内部的にはメソッド呼び出しのシンタックスシュガーなのかな IEnumerableなど、データのまとまりを扱うクラスで使用できるようになっています。 基本的な使いかたは以下のような感じ var list = new[] { new { Col1 = 1,…

C#3.0機能紹介その5。匿名型

C#

匿名型 匿名型のオブジェクトを生成することができます。 例はこんな感じ。 即興のクラスインスタンスが生成できる感じですね。 var a = new { Test = "",Test2 = "a" }; var b = new { Test = "a",Test2 = "b" }; var c = new { Test = "abc" }; プロパティ…

C#3.0機能紹介その4。初期化

C#

オブジェクトとコレクションを初期化するときの構文が追加されていますね オブジェクトを初期化する際に、同時にプロパティの値を設定できるようになりました。 たとえばこんなクラスがある状態で class D { string property1; string property2; public str…

C#3.0機能紹介その3。ラムダ式

C#

C#2.0で増えた匿名メソッドの新しい記述方法という認識でいいのかな たとえば以下の配列に対するFindメソッドは同じ結果を返します。 List<String> s = new List<string>(new String[]{"","test","hoge"}); String test1 = s.Find(delegate(String st) { return st == "test"</string></string>…

C#3.0機能紹介その2。拡張メソッド

C#

RubyのMix-in的な感じなのかな、定義方法はだいぶ違うけど。 既存のインスタンスにメソッドを追加できます。 以下のようにクラスとメソッドを定義 static class StaticMethods { static public void ShowMessageBox(this string s) { MessageBox.Show(s,"tit…

C#3.0機能紹介その1。暗黙的に型指定されたローカル変数

C#

型を暗黙的に判断してくれる機能。プライベートメソッド内でしか使用できません。以下のような感じで。 値型、参照型、配列どれでもいけるみたいですね。 //okな例 var i = 1; >|cs|var str = "string"; var arr1 = new int[] { 1,3 }; var ls = new List<int>();</int>…

VisualStudio2008のインストール

C#

時間があいたので、やっとこさ触ってみました。2.0のときよりは乗り遅れてないはずっ とりあえずインストールなのですが、いきなり躓きました。 もともとVisual C# 2008 Express Edition をいれてるマシンに、 VS2008proをインストールしようとしたのですが…

プロジェクトの基本クラス作り

C#

基本クラスって言い方でよいのかなちょいと久しぶりにプロジェクトの共通クラスをつくっています。 試行錯誤中。。。これからアプリ作る際に共通で作れるようになんとか

ソースコードのダウンロード

C#

http://d.hatena.ne.jp/siokoshou/20080213 最近いろんなところで紹介されていたので、自分も落としてみることにした どうやらVS2008で設定してあげないとダウンロードできないらしい 会社での開発はVS2005がメインなので、今回は断念 今度あいているPCを使…

設定ファイル

C#

作成中のアプリケーションに設定ファイルを使う場合どの形式がいいのだろう?ということでちょいと羅列 テキスト形式で読めて書けるという条件化だと以下の4つがメインかな? CSV 設定よりもデータの集まりに近い形式なら一番使いやすくてよい YAML 人が記…

プロジェクトに画像を埋め込む

C#

必要になるたびにぐぐってる気がするのでメモ アイコンファイルやシステムで利用する画像を埋め込む方法。プロジェクトに追加しただけだと、exeと同じ場所にコピーされてしまうんですよね。これは不便! ソリューションエクスプローラでプロジェクトに追加し…

楽天のAPIをC#から叩いてみたよ

ちょいと調べたいことがあったので、APIを使ってみました 出たころにほんの少しだけRESTで触ったことはあるのだけど、SOAPを使うのは初めて で、SOAPは昔少しだけ使ったことがあるレベルなので、手順を忘れないようにメモ何が困ったかって、楽天ウェブサービ…

クラスを動的に読み込む場合の注意

C#

プラグイン機能的なものを実装する際のメモ この間、プラグイン機能を実装しようと思って、dobonさんのところ(http://dobon.net/vb/dotnet/programing/plugin.html)を参考にプログラム書いてたときの出来事。 この記事での事柄を一通り実装して、実行時に事…