0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Gtk3アプリ RiderとMySqlとDapper

Last updated at Posted at 2021-11-30

####前提条件

MySqlのインストール
MySql WorkBenchのインストール
DapeprをNuGetからインストール
DapperExtensionをNuGetからインストール

###MySQL WorkBenchでDBを作成する

RiderにMySqlに接続するツールがあり、スキーマ、テーブル、カラムが作成できます。
DBの作成の仕方がわからなかったため、MySql WorkBenchからDbだけを作成します

WorkBenchでDbだけ作成します。
Screenshot from 2021-11-30 15-55-07.png
####DBへ接続
DBを作成したらRiderから接続します。
DataBaseにスキーマ名を記入します。
Screenshot from 2021-11-30 16-01-43.png
####Rider上のテーブルの作成
DBち(スキーマ)を作成するとテーブルを作成できるようになります。
Screenshot from 2021-11-30 17-38-30.png
###Rider上でのDBの操作
カラムを追加したり、外部キーを追加したりできます。
Screenshot from 2021-11-30 16-03-08.png
####NuGetからMySql.Dataをダウンロード
NugetからMySqlクライアントMySql.Dataをインストールします
Screenshot from 2021-11-30 16-13-05.png
####スキーマからモデルを生成する
ここからソースをダウンロードし、Riderのフォルダの中に格納しすぐモデルファイルを作成できるようにします。
MySql用にカスタマイズしていきます。

右クリックから実行しモデルファイルを生成します。
Screenshot from 2021-11-30 19-08-15.png
####テストソース

using System;
using System.Linq;
using MySql.Data.MySqlClient;
using Dapper;
using DapperExtensions;

namespace mySql
{
    class Program
    {
        public class test
        {
            public Int64 id { get; set; } = 0;
            public string code { get; set; } = null;
            public string name { get; set; } = null;
        }
       
        static void Main(string[] args)
        {
            
            MySqlConnectionStringBuilder b = new MySqlConnectionStringBuilder();
            b.Server = "localhost";
            b.Port = 3306;
            b.Database = "";
            b.UserID = "";
            b.Password = "";

            MySqlConnection con = new MySqlConnection(b.ConnectionString);
            //MySQL形式でSQLを書き出す
            DapperExtensions.DapperExtensions.SqlDialect = new DapperExtensions.Sql.MySqlDialect();

            //Dapperの_の入ったカラム名を有効にする。
            Dapper.DefaultTypeMap.MatchNamesWithUnderscores = true;

            con.Open();

            string sql = "select * from test;";

            var result = con.Query<test>(sql);

            foreach(var p in result) {
                Console.WriteLine("ID:" + p.id + " 名:" + p.name);
            }

            test test1 = new test();
            test1.name = "test2";
            test1.code = "java";
            con.Insert<test>(test1);

            string sql3 = "select * from test Where code = 'java';";
            var test_result2 = con.QueryAsync<test>(sql3);
            Console.WriteLine(test_result2.Result);

            foreach (test test_t in test_result2.Result)
            {
                con.Delete<test>(test_t);
            }

            var result5= con.QueryAsync<test>(sql);
            
            Console.WriteLine(" count " + result5.Result.Count());

            con.Close();

        }
    }
}

####MySqlの設定

Adavancedのところで変数を設定できます

Screenshot from 2021-12-16 14-19-49.png

####課題

DapperExtensionのInsertAsyncなどAsync系が実行できなかった。

Gtk3アプリ RiderとTypeScriptとGtk3アプリの連携 その1に続く

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?