[Visual Studio]comboBox使用時のマップ

Visual StudioでcomboBox使用時にマップ使う場面があるときに以下のを共有します。

・comboBoxの「items」プロパティに以下のリストを追加するとします。

item1
item2
item3

ここで、マップを定義例は以下です。

           //マップの定義
            IDictionary<string, int> mapItem = new Dictionary<string, int>();

            //マップに値の追加
            mapBook.Add("item1", 1);
            mapBook.Add("item2", 2);
            mapBook.Add("item3", 3);

comboBox選択された値を取得する例です。

string str = comboBox1.SelectedItem.ToString();

comboBox選択されたマップのValueを取得する例です。

decimal itemNo = mapItem[str];

[Visual Studio]SQLiteを使ったWindowsフォームアプリ作成

Visual StudioでSQLiteを使ったWindowsフォームアプリ作成例を共有します。

・プロジェクト作成

Windows フォームアプリケーション(.NET Framework)

名前:TestViewer

場所:C:\

ソリューション名:TestViewer

・System.Data.SQLiteパッケージインストール

ソリューションエクスプローラーからプロジェクト名を右クリックして「NuGet パッケージの管理」を選択する。

参照を選択して、「System.Data.SQLite」を選択して、インストールする。

・フォームデザイン

Button1、Button2を追加する。

・csファイルのインクルートに以下を追加する。

using System.IO;
using System.Data.SQLite;

・デザインのButton1をクリックして、csファイルで以下を追加する。


        private void button1_Click(object sender, EventArgs e)
        {
            //DB作成
            String dbname = "testviewer.db";
            if (File.Exists(dbname) == false) {
                using (SQLiteConnection connection = new SQLiteConnection("Data Source=" + dbname))
                {
                    connection.Open();

                    using (SQLiteCommand cmd = connection.CreateCommand())
                    {
                        cmd.CommandText = "create table d_test(id INTEGER PRIMARY KEY, data TEXT);";
                        cmd.ExecuteNonQuery();
                    }
                }
            }

           //DB追加
            using (SQLiteConnection connection = new SQLiteConnection("Data Source=" + dbname))
            {
                connection.Open();

                using (var transaction = connection.BeginTransaction())
                {
                    using (SQLiteCommand cmd = connection.CreateCommand())
                    {
                        cmd.CommandText = "insert into d_test(id, data) values (@ID, @DATA)";
                        cmd.Parameters.Add(new SQLiteParameter("@ID", 1));
                        cmd.Parameters.Add(new SQLiteParameter("@DATA", "testdata1"));
                        cmd.ExecuteNonQuery();
                    }
                    transaction.Commit();
                }
            }
        }

  

・デザインのButton2をクリックして、csファイルで以下を追加する。

        private void button2_Click(object sender, EventArgs e)
        {
 
           //DB検索
            String dbname = "testviewer.db";
           using (SQLiteConnection connection = new SQLiteConnection("Data Source=" + dbname))
            {
                connection.Open();

                using (SQLiteCommand cmd = connection.CreateCommand())
                {
                    //SQL
                    cmd.CommandText = "select * from d_test where id = @ID";

                    //パラメータ
                    cmd.Parameters.Add(new SQLiteParameter("@ID", 1));

                    //Prepare
                    cmd.Prepare();

                    //reader
                    using (SQLiteDataReader reader = cmd.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            Console.WriteLine(reader["id"].ToString());
                            Console.WriteLine(reader["data"].ToString());
                        }
                    }
                }
            }
        }

・実行手順

Button1クリックして、DBにレコード登録する。

Button2クリックして、DBから検索する。

・実行結果

1
testdata1