System.Data.SQLiteを用いた、C# + SQLiteでのLIKE抽出のメモ
System.Data.SQLite( http://system.data.sqlite.org/index.html/doc/trunk/www/index.wiki )を用いると、C#で容易にSQLiteを扱うことができるようになります。
Visual Studio 2010のクエリビルダなども使えて便利なので、勉強用にいろいろ作って試していました。
そんな中、LIKEを使ったあいまい抽出が上手くいかなかったので、備忘録的メモとして記録しておきます。
まず、クエリビルダの使い方は下記で調べました。
連載:Visual Studio 2005によるWindowsデータベース・プログラミング
第5回 詳細項目画面の作成とカスタマイズ
http://www.atmarkit.co.jp/fdotnet/vblab/vsdbprog_05/vsdbprog_05_03.html
LIKEの部分は
LIKE '%' + @keyword+ '%'
のように記載するように書かれているため、そのようにしてプログラムを実行してみました。
すると、その文字列が含まれるにも関わらず抽出結果はNULLとなってしまいました。
プログラムに問題があるのかと思い、クエリビルダからクエリを実行しても同じくNULLに。
@keywordの型とデータの型が合ってない、等の問題でできないのかなと思い
LIKEを消して、試しに
WHERE NAME = @Keyword
で抽出を行うと問題無く抽出できました。
この後、いろいろ試したところ、LIKEの部分を
LIKE @keyword
にして、Keywordを取得するプログラムの部分で、
Keywordの前後に%を付加( "%" + keyword + "%" )することで
LIKEが動作するようになりました。
System.data.SQLiteの問題なのか、他に何か問題があるのかは不明ですが
同様の問題で悩んでいて、同様の解決方が提示されていたので
とりあえず今回はコレでいくことにしました。
C# SQLite Parameterized Select Using LIKE
http://stackoverflow.com/questions/4329953/c-sharp-sqlite-parameterized-select-using-like
Macbook Air 2011にWindows 8をインストールしてみた
26日、Windows 8が発売されたので、早速現在メインマシンとなっている
Macbook Air 2011にインストールしてみました。
ダウンロード版は3300円ということで、今回はこれを入れてみました。
トラブルもあったけど、現在は安定して動いています。
Windows 7から、Windows 8をダウンロードして設定を引き継いでディスクを作成せずインストール
↓
インストール完了後、再起動時に外付けHDDチェックが走る
(以前Windows起動中にHDDが外れたため、フラグが立っていたと思われる)
↓
HDDチェック完了後、Windows 8を起動しようとしても再起動が無限に繰り返し起動しなくなる
↓
再起動時のメニューから、Windows 7を選択してWindows 7に戻す
↓
Bootcampマネージャを使わないといけないのかと思い調べるも、
Win7→Win8は普通にアップデートできるという情報を得る
↓
再度Windows 7上から設定を引き継いでインストール
↓
今度はインストール完了後、無事Windows 8が起動
↓
カメラ、タッチパッドが使えない
↓
さらに、ストアからアプリをダウンロードしてもインストールで失敗する
↓
マイクロソフトのサポートに連絡しようとWebサイトから入力するも
ライセンス認証には成功しているにも関わらず
プロダクトIDを認識してくれず、問い合わせできない
↓
調べてみたところ、Windowsのファイルが壊れているとWindows Updateできないという情報があり、
インストールエラー時に表示されるエラーコード(コード忘れた…0x7~)と同様のエラーコードであった
↓
Windows 8インストール用ディスクを作成してディスク起動し、リフレッシュを実行してみる
↓
インストールされていたProgram Filesのソフトが全部消える…
↓
やはりアプリインストール時にエラーが表示されてインストールできない
↓
Windows 8インストール用ディスクから起動し、クリーンインストールを実行
↓
無事起動
↓
Bootcamp 4でWindows 7用のドライバをインストールしたところ
設定引き継ぎでは使えなかったタッチパッド、カメラが正常に使えた
Twitterなどを調べてみても同様の現象で悩んでいる人は居なかったため、
うちの環境だけかもしれませんが、結構苦労しました。
Windows 8にはXboxLiveが統合されており、
ソリティアやマインスイーパ、そのMicrosoftが提供する無料ゲームにも実績があったり
XboxのアバターをWindows PCから編集できたり、
SmartGlassアプリでXboxのゲームを操作したりと、
Xboxユーザはいろいろ楽しめると思います。
XNA用多言語テキスト編集ツールのバージョンアップをしました。
今回のバージョンアップでは、若干操作性を向上しました。
- テキストボックスのサイズを環境設定に保存するようにした。
- 使用文字テーブルテキストの自動生成を初めて行う際、 確認メッセージを表示するようにした
詳細は下記よりご確認ください。
http://www.takegami.net/xna-tools/multi-language-text-manager/
English site
http://www.takegami.net/xna-tools/multi-language-text-manager/en/
XNA用多言語テキスト編集ツール Multi Language Text Manager更新内容
XNA用多言語テキスト編集ツールのバージョンアップをしました。
http://www.takegami.net/xna-tools/multi-language-text-manager/
今回のバージョンアップで、テキストの複数行入力に対応しました。
前回までのXMLデータはそのまま使用できます。
今回の仕様変更で、取得する言語ID一覧がDictionaryからListに変更になりました。
この変更により、ループ処理などを行いやすくなりました。
XNA用多言語テキスト編集ツールのバージョンアップをしました。
今回の更新では、MultiLanguageTextManagerクラスに
言語IDと説明の一覧を取得できる機能を追加しました。
また、言語IDと説明に使用される文字列も使用文字テーブルテキストへ
書き出すように変更しました。
この追加機能により、言語IDが増減した場合でもプログラムを変更せずに
対応することが可能となります。
http://www.takegami.net/xna-tools/multi-language-text-manager/
プログラミング例:
- オプション画面の項目を全てMultiLanguageTextManagerから取得して表示させる。
- 言語変更オプション画面等で、言語ID一覧を取得する。
- 左右キー押下で、言語ID一覧より前/次の言語IDを取得する。
- 取得した言語IDをMultiLanguageTextManagerに設定する。
(この時点で表示される項目が全て前/次の言語になる)
XNA用多言語テキスト編集ツールをリリースしました。
XNAでの多言語テキストの扱いを(少し)簡単にできる、
Multi Language Text Manager Editor for XNAをリリースしました。
あまり大したことができるワケではありませんが
少しだけ、マルチランゲージテキストの扱いが楽になればいいなと思って作りました。
http://www.takegami.net/xna-tools/multi-language-text-manager/
サイトの方は、しばらくまともにネットできない状態になるため
その前に公開しようと思い急ぎで作ったので、突貫工事状態となっています。
要望やバグなどがありましたら、コメント欄やTwitterのmentionなどで
ご連絡ください。