C#でMySQLに接続するにはMySQLコネクタが必要になります。
MySQLコネクタはMySQLのサイトからダウンロードできます。
MySQLコネクタダウンロード・インストール
MySQLのサイトを表示して赤枠で囲んでいる「MySQL Enterprise Edition」をクリックします。
右側の赤枠、コネクタをクリックします。
「ADO.NET Driver for MySQL(Connector/NET)」を選択。
色んなボタンがありますが、迷わずDownloadをクリック。
赤枠で囲んだ「No thanks,just start my download」をクリックしらたダウンロードが開始されます。
ダウンロードしたファイルを実行するとインストールプログラムが起動します。
Nextをクリック。
「Typical」を選択してNextをクリック。
Installをクリックしてインストール開始。
インストールが完了したのでFinishをクリックして終わります。
インストール作業はこれで終わりです。
後はVisual Studioをちょこっと操作します。
Visual Studio参照設定
先程インストールしたMySQLのコネクタをVisual Studioで使えるようにします。
「参照」を右クリックして「参照の追加」をクリック。
検索枠に「my」と入力したら参照対象が表示されるので「MySql.Data」を選択してOKをクリック。
Visual Studioの参照設定はこれだけで完了です。
早速C#でMySQLに接続するプログラムを作ります。
空のクラス作成
using System; using MySql.Data.MySqlClient; class MySQLsssproduct { }
このクラスにMySQLに関する処理を追加します。
using MySql.Data.MySqlClient;を忘れる事無く!!。
MySQL接続文字列
using System; using MySql.Data.MySqlClient; class MySQLsssproduct { string server = "localhost"; string user = "root"; string password = ""; string database = "sssproduct"; }
環境によって変わってきますが、MySQLの接続に必要な情報です。
コネクションをインスタンス
using System; using MySql.Data.MySqlClient; class MySQLsssproduct { string server = "localhost"; string user = "root"; string password = ""; string database = "sssproduct"; MySqlConnection connection = new MySqlConnection(); // MySQL接続をインスタンス }
MySqlMySqlConnectionをインスタンスして使用可能にします。
MySQL接続メソッド
using System; using MySql.Data.MySqlClient; class MySQLsssproduct { string server = "localhost"; string user = "root"; string password = ""; string database = "sssproduct"; MySqlConnection connection = new MySqlConnection(); // MySQL接続をインスタンス // Localhost MySQL sssproduct接続 public bool connect() { try { connection.ConnectionString = string.Format("Server={0};Database={1};Uid={2};Pwd={3}", server, database, user, password); connection.Open(); } catch (MySqlException me) { Console.WriteLine("ERROR: " + me.Message); return false; } return true; } }
接続用文字列を利用してMySQLに接続します。
正常に接続できたらtrueを返し接続に失敗したらfalseを返します。
戻り値のtrueやfalse等の値を直接使うのは呼び出し側と相違が発生する可能性があるのであまり好ましい方法ではありません。
定数をまとめて定義するものを作ります。
定数の定義
class GlobalVariable { public bool OK = true; public bool NG = false; }
今回はこれだけのも物ですが、プログラムを書き進めて必要になればこれに加えて書きます。
定数を利用
先程のMysqlに接続するプログラムを改良しました。
using System; using MySql.Data.MySqlClient; class MySQLsssproduct { string server = "localhost"; string user = "root"; string password = ""; string database = "sssproduct"; MySqlConnection connection = new MySqlConnection(); // MySQL接続をインスタンス GlobalVariable GV = new GlobalVariable(); // 定数をインスタンス // Localhost MySQL sssproduct接続 public bool connect() { try { connection.ConnectionString = string.Format("Server={0};Database={1};Uid={2};Pwd={3}", server, database, user, password); connection.Open(); } catch (MySqlException me) { Console.WriteLine("ERROR: " + me.Message); return GV.NG; } return GV.OK; } }
定数を定義したGlobalVariableインスタンス化して返す値もプロパティを使います。
おっと、MySQLに接続したら解放も必要です。
解放の処理を追加します。
MySQL解放
using System; using MySql.Data.MySqlClient; class MySQLsssproduct { string server = "localhost"; string user = "root"; string password = ""; string database = "sssproduct"; MySqlConnection connection = new MySqlConnection(); // MySQL接続をインスタンス GlobalVariable GV = new GlobalVariable(); // 定数をインスタンス // Localhost MySQL sssproduct接続 public bool connect() { try { connection.ConnectionString = string.Format("Server={0};Database={1};Uid={2};Pwd={3}", server, database, user, password); connection.Open(); } catch (MySqlException me) { Console.WriteLine("ERROR: " + me.Message); return GV.NG; } return GV.OK; } // database sssproduct解放 public void deconnect() { connection.Close(); } }
これでMySQLsssproductクラスは完成です。
ではこれらのクラスを呼び出すMainの処理を作ります。
MySQLに接続するプログラム
using System; using MySql.Data.MySqlClient; namespace ProjectMySQL { class Program { static void Main(string[] args) { GlobalVariable GV = new GlobalVariable(); // 定数インスタンス MySQLsssproduct sssproduct = new MySQLsssproduct(); // Localhost MySQL sssproductアクセスインスタンス if (sssproduct.connect() == GV.OK) { Console.WriteLine("Localhost MySQL sssproductに接続しました。"); sssproduct.deconnect(); } else { Console.WriteLine("Localhost MySQL sssproductの接続に失敗しました。"); } Console.ReadLine(); } } }
先に作ったクラスを使ってMySQLに接続します。
戻り値によって正常に接続できたか、接続に失敗したかを判定します。
コメント