C#でMySQLのテーブル中身を取得する方法

プログラム
自己紹介
東証一部上場企業に勤務
主に工場で使う検査装置や、
自動化するためのソフトを日々開発中

前回までの記事で、C#からMySQLの接続はできましたよね??

ちょっとわからないという方は、準備も含めて、
このサイトのプログラムカテゴリから過去の記事を確認してくださいね。

プログラムカテゴリはこちらへ

それでは早速手順を追って説明していきます。

C#でMySQLのテーブルデータを取得するための下準備

Form上にデータグリッドビューを設置する

以下のように、Form上にデータグリッドビューを設置しておきましょう。

私は、dataGridView_mysqlData という名前にしました。

コマンドプロンプトからMySQLにログインする

半分おさらいですが、コマンドプロンプトから以下のコマンドを打ってログインしてみましょう。

mysql -u root -p

もしこれでパスワードが聞かれないようだと、環境変数のPathがまだ設定されていません。

過去記事のログイン編で詳しく説明しているので、そちらをご覧ください。

コマンドプロンプトで初期状態から入っているテーブルを確認する

今回は、初期のインストール時から入っているデータを使用します。

こちらのように、データベースの中身を見ていくと、

worldというデータベース、その中には、cityなどが入っていますね。

今回はこのcityというデータテーブルの中身を、Form上に表示させます。

ソースコード

いきなりですが、ソースコードをこちらに貼っておきます。

Form名、ボタン名、データグリッドビュー名が一致していれば後は自分の決めたパスワードだけ入れれば動くはずです。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using MySql.Data.MySqlClient;
using MySql.Data;



namespace mysqlTest
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
       
        DataTable dt = new DataTable();
        private void button_takeData_Click(object sender, EventArgs e)
        {
            // MySQLへの接続情報
            string server = "localhost";		// MySQLサーバ名※今回は自機の疑似サーバへのアクセスなのでlocalhost
            string user = "root";			// MySQLユーザ名※管理者権限の場合はroot,他に作成済みのユーザ名でもOK
            string pass = "";			// MySQLパスワード※ユーザ名に対応したパスワードを入力
            string database = "world";		// 接続するデータベース名※今回はインストール時から入っているものを指定
            string connectionString = string.Format("Server={0};Database={1};Uid={2};Pwd={3}", server, database, user, pass);
            
            // MySQLへの接続
            try
            {
                // ここでMySQLConnectionではなく、MySqlDataAdapterを使用する。(引数に上記の情報を入れる)
                // MySqlConnectionでは接続に必要な情報だけが引数だったが、
                // MySqlDataAdapterでは、第一引数にコマンド(クエリ)を入れる。
                MySqlDataAdapter mysqlAdp = new MySqlDataAdapter("SELECT* FROM CITY",connectionString);
                // MySQLに接続して、SELECT文で取得したデータをデータテーブルに格納する。
                mysqlAdp.Fill(dt);
                // ここまで通ればMySQLに接続できている
                MessageBox.Show("MySQL接続完了");
                dataGridView_mysqlData.DataSource = dt;                                                                           
            }
            catch (Exception)
            {
                // catchされたら、どこかしらが間違っている。
                MessageBox.Show("MySQL接続失敗");
            }            
        }      
    }
}

実際にMySQLのテーブルデータを取得してみる

どうでしょうか?
この画面のようにForm上に表示されましたか??

Takeボタンを押して取得した結果

もちろん、起動だけではなく、しっかりボタンを押してイベントを発生させてくださいね!

というわけでいかがだったでしょうか?
ここまでできれば、自分で違うテーブル名を指定してデータを取得などできそうですよね??

実際装置間でのやり取りや、サーバへのアップなどはここから少しレベルが上がるので、
少しずつ解説していきます。
そもそもSELECT文も説明していないような気がしますし…

コメント

タイトルとURLをコピーしました