これまで、WPFでSQLiteを使って色々やってきましたが、
他のDBではどうだろうかと、試しに MySQL (MariaDB)を使ってみました。
プログラムは前回のものを使います。
【WPF】フォルダ選択ダイアログを表示して複数のCSVファイルを読み込む
ソリューションエクスプローラーからプロジェクトを選択、右クリックし
「Nuget パッケージの管理」を選択します。
Nuget パッケージ管理画面が表示されるので、
検索窓に「mysql」を入力し、「MySql.Data」を選択、インストールボタンをクリックします。
プレビュー画面が表示された場合は、「OK」ボタンをクリックします。
ライセンス同意画面が表示されるので、「同意する」ボタンをクリックします。
出力ビューに「終了」が表示されれば完了です。
MySQLが自分の環境にない場合は、
以前記事を書いたので参考にしてインストールしてください。
MariaDB 10.2.6 のインストールからテーブル作成まで
MySql(MariaDB)にデータベースを作成し
SQLite の時と同じテーブル、データを用意します。
テーブル作成、データ登録クエリ
CREATE TABLE IF NOT EXISTS MSTKIND (
KIND_CD CHAR(2) NOT NULL
, KIND_NAME VARCHAR(20)
, PRIMARY KEY (KIND_CD)
);
CREATE TABLE IF NOT EXISTS TBLCAT (
NO INTEGER(2) NOT NULL
, NAME VARCHAR(20) NOT NULL
, SEX CHAR(3) NOT NULL
, AGE INTEGER(1) DEFAULT 0 NOT NULL
, KIND_CD CHAR(2) DEFAULT '00' NOT NULL
, FAVORITE VARCHAR(40)
, PRIMARY KEY (NO)
);
INSERT INTO MSTKIND VALUES ("01", "キジトラ");
INSERT INTO MSTKIND VALUES ("02", "長毛種(不明)");
INSERT INTO MSTKIND VALUES ("03", "ミケ(っぽい)");
INSERT INTO MSTKIND VALUES ("04", "サビ");
INSERT INTO MSTKIND VALUES ("09", "その他");
INSERT INTO TBLCAT VALUES('1','そら','♂','6','01','犬の人形');
INSERT INTO TBLCAT VALUES('2','りく','♂','5','02','人間');
INSERT INTO TBLCAT VALUES('3','うみ','♀','4','03','高級ウェットフード');
INSERT INTO TBLCAT VALUES('4','こうめ','♀','2','04','横取りフード');
ダウンロードしたパッケージを利用するための宣言を追加します。
MainWindow.xaml.cs
using MySql.Data.MySqlClient;
SQLiteに接続していた部分を MySQLに接続するように修正します。
MainWindow.xaml.cs
//using (var conn = new SQLiteConnection("Data Source=SampleDb.sqlite"))
using (var conn = new MySqlConnection("Database=DB01;Data Source=localhost;User Id=USER01;Password=USER01; sqlservermode=True;"))
検索、更新、削除など、全ての箇所を修正します。
SQLite とは微妙に違うところ(型、長さ)を変更。
MainWindow.xaml.cs
// 種別マスタ
StringBuilder sb = new StringBuilder();
sb.Append("CREATE TABLE IF NOT EXISTS MSTKIND (");
sb.Append(" KIND_CD CHAR(2) NOT NULL");
sb.Append(" , KIND_NAME VARCHAR(20)");
sb.Append(" , PRIMARY KEY (KIND_CD)");
sb.Append(")");
command.CommandText = sb.ToString();
command.ExecuteNonQuery();
// 猫テーブル
sb.Clear();
sb.Append("CREATE TABLE IF NOT EXISTS TBLCAT (");
sb.Append(" NO INTEGER(2) NOT NULL");
sb.Append(" , NAME VARCHAR(20) NOT NULL");
sb.Append(" , SEX CHAR(3) NOT NULL");
sb.Append(" , AGE INTEGER(1) DEFAULT 0 NOT NULL");
sb.Append(" , KIND_CD CHAR(2) DEFAULT '00' NOT NULL");
sb.Append(" , FAVORITE VARCHAR(40)");
sb.Append(" , PRIMARY KEY (NO)");
sb.Append(")");
アプリケーションを起動し、検索ボタンをクリックするとしっかりデータが表示されました。
意外に簡単に利用することができますね。
MySQLはとりあえずここまでにします。
そのうち Oracle、PostgreSQLでも試してみたいと思います。
ソースはこちら
ではでは。
Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。
また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!
こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?
コメント