お手軽Linux GUIアプリ開発 初級 前編
- Sqlite3の利用
- Dapperの導入 Dapperについてまとめてみた
- Dapper Extensionの導入 Dapperの拡張ライブラリ 比較検討
- Swaggerを使う Stoplight Studioなどを使う 本当に使ってよかったOpenAPI (Swagger) ツール
- C#からPythonを実行する C#からPythonスクリプトを呼び出す
- DataGridViewとModelのバインディングの実現 URL treeView
- RaspberryPiへのデプロイの仕方
前編は5まで
プロジェクトはGtk#を選択する
Nugetからパッケージをダウンロードする
ダウンロードするパッケージ
Dapper
DapperExtensions
Mono.Data.Sqliteをダウンロードします。Gtk2#の場合はSystem.Data.Sqliteは読み込めません。
Dapperを使ったQuery
Queryの結果を自動でモデルに入れることができます。またInsert時Update時に引数代わりにModelを使えます。
staticpublicvoid_dapperTest(){Mono.Data.Sqlite.SqliteConnectionconnection=newMono.Data.Sqlite.SqliteConnection();connection.ConnectionString=@"Data Source=パス/test.sqlite";connection.Open();varquery="select * from testTable;";varresult=connection.Query<testTable>(query);foreach(varpinresult){Console.WriteLine("ID:"+p.test_id+" 名称:"+p.name);}connection.Close();}
DapperExtensionを使ったInsertUpdate処理
ModelからInsert文やUpdate文を自動生成し、処理できます
Sql文を生成を変更します
DapperExtensions.DapperExtensions.SqlDialect=newDapperExtensions.Sql.SqliteDialect();
staticpublicvoid_dapperExtensionTest(){//Sql文を [testTable].[test_id]から [test_id]に変更するDapperExtensions.DapperExtensions.SqlDialect=newDapperExtensions.Sql.SqliteDialect();Mono.Data.Sqlite.SqliteConnectionconnection=newMono.Data.Sqlite.SqliteConnection();connection.ConnectionString=@"Data Source=パス/test.sqlite";connection.Open();//DapperExtensionを使った処理testTabletestTable1=newtestTable();testTable1.name="aaaaaa111";connection.Insert<testTable>(testTable1);varquery="select * from testTable;";varresult=connection.QueryFirst<testTable>(query);//DapperExtensionを使った処理result.name+="qqqq111";connection.Update<testTable>(result);connection.Close();}
Swaggerを自動生成にさせる
Stoplight Studioを使います。
本当に使ってよかったOpenAPI (Swagger) ツール
開発にあたってのポイント
- Gtk2#はMono.Data.Sqliteを使う。Dapperと併用できた
- gtkのサンプルを探すのに苦労した。C# gtk hotexamples 調べたいメソッド名で調べるとgitに上がっているサンプルを一覧できるサイトが見つけることができた。
- モデルにDataMemberを追加し、DBのカラム名と変数名を紐づける(マッピング)
後編に続く