MySql.Data.MySqlClient名前空間に、MSDE/SQL Serverで使われているSqlConnectionなどのクラスと対になっているMySql~というクラスがある。MSDE/SQL ServerからMySQLへの移行の際には、MySQL Connector/Netをインストールした後に各クラスの先頭にMyと付けるだけで移行ができる。
ただ、漢字コードは適切に設定しないと文字化けする。
以下メモ。
クライアント:
Windows Vista
Visual C# 2008 Express Edition
MySQL Connector/Net ? for connecting to MySQL from .NET
http://dev.mysql.com/downloads/
Ver 5.2 ベータ版
Ver 5.1 安定版 (.NET 2.0以上向け) → これを使用
Ver 1.0 安定版 (.NET 1.1用)
サーバ:
Windows XP + MySQL 5.1.23
コード:
MySqlConnectionコンストラクタのパラメータに CharSet=utf8 を追加
データベース作成:
mysql -u root -p ← コマンドプロンプトから
CREATE DATABASE rakuten CHARACTER SET utf8;
↑ utf8を指定
MySQLのネットワークアクセス設定 (デフォルトではネットワークアクセスできない)
mysql -u root -p
use mysql;
grant all privileges on *.* to root@192.168.1.4 IDENTIFIED BY 'パスワード'
今回、クラス名の先頭にMyをつけるだけで終わりにしようと思ったが、まだMSDE/Sql Server側にも接続したかったので、トランザクションおよびデータリーダー用のラップクラスを作り、My~に置換するのではなくラップクラスと置き換え、MSDE/Sql ServerとMySQLと、同じソースで両用できる作りとした。
本来はMyと付けるだけで終わりにしたかったのであるが、終わってみれば、共通設定などコピペでとりあえず済ませていた部分が一本化できていコピペが減ったので、まあ良かったかな。
今まで、文字化けが嫌でMySQL + Windowsの組み合わせを避けていたが、いざやってみれば、案外すんなりとうまくいった。 昔はもっと苦労した記憶があるのだが・・・。 運よく、他の人の成功例を見つけられたことも良かったのかもしれない。 それか、接続モジュールのバージョンが上がったおかげか? 昔はVer1.0の .NET Framework 1.1用を試した記憶がある。 ともあれ、うまくいったので、これからはMySQLをますます有効活用できそうだ。 MSDEの2G制限に困っていたので、随時MySQLに移行しようと思う。
投稿時間 : 22:48 個別ページ表示 | トラックバック (0)