C# .NET6でMySQL接続するためmacOSのターミナルから[パッケージを組込む]ための「add package」コマンドを実行します。
dotnet add package MySql.Data --version 8.0.28
MySQLで下のtestという名称のテーブルを用意しました。
このtestテーブル内容をC# .NET6から取得する2つのコード例です。
MySqlCommandのExecuteReader()を使う場合
using MySql.Data.MySqlClient; using System.Data; string mysqlConnectStr = string.Format("Server={0};Database={1};Uid={2};Pwd={3};Charset={4}", "127.0.0.1", "x", "x", "x", "utf8"); var mysqlConnect = new MySqlConnection(mysqlConnectStr); mysqlConnect.Open(); var myCommand = new MySqlCommand("select * from test", mysqlConnect); var read = myCommand.ExecuteReader(); while(read.Read()){ Console.WriteLine("{0}, {1}", read["title"],read[1]); } mysqlConnect.Close();
カラム名でもカラムインデックスでも取得可能でした。
MySqlDataAdapterを使う場合
using MySql.Data.MySqlClient; using System.Data; string mysqlConnectStr = string.Format("Server={0};Database={1};Uid={2};Pwd={3};Charset={4}", "127.0.0.1", "x", "x", "x", "utf8"); var mysqlConnect = new MySqlConnection(mysqlConnectStr); mysqlConnect.Open(); var myCommand = new MySqlCommand("select * from test", mysqlConnect); var rows = new MySqlDataAdapter(myCommand); var dt = new DataTable(); rows.Fill(dt); foreach(DataRow line in dt.Rows){ foreach(var col in dt.Columns){ Console.WriteLine("Column Name = {0}, Value = {1}", col, line[col.ToString()]); } } mysqlConnect.Close();
DataTableを使ってColumn名を取り出しています。