【C#】Accessデータベースでデータを追加・更新・削除してみる
おはようございます。
先日、データの取得までやったので
さくっと追加・更新・削除もついでにやってみました。
(だいぶ簡単にですが)
プログラムは前回のものを流用しています。
スポンサーリンク
画面の修正
画面に追加・更新・削除ボタンを新設します。
プログラム
Form1.cs
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 System.Data.Odbc; namespace SampleAccessDatabase { public partial class Form1 : Form { /// <summary> /// 接続文字列 /// </summary> private static string CONNECTION_STRING = @"Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=D:\Sample.accdb; Uid=; Pwd =; "; /// <summary> /// 起動時の処理. /// </summary> public Form1() { InitializeComponent(); // DataGridViewの設定 dataGridView1.AutoGenerateColumns = false; dataGridView1.Columns.Add("No", "No"); dataGridView1.Columns.Add("Name", "名前"); dataGridView1.Columns.Add("Sex", "性別"); dataGridView1.Columns.Add("Age", "年齢"); dataGridView1.Columns.Add("KbnCd", "種別"); dataGridView1.Columns.Add("Favorite", "好物"); dataGridView1.Columns[0].DataPropertyName = "No"; dataGridView1.Columns[1].DataPropertyName = "Name"; dataGridView1.Columns[2].DataPropertyName = "Sex"; dataGridView1.Columns[3].DataPropertyName = "Age"; dataGridView1.Columns[4].DataPropertyName = "KbnCd"; dataGridView1.Columns[5].DataPropertyName = "Favorite"; dataGridView1.Columns[0].SortMode = DataGridViewColumnSortMode.Automatic; // データ検索 search(); } /// <summary> /// データを検索、表示します. /// </summary> private void search() { // データ取得 DataTable dt = new DataTable(); using (OdbcConnection con = new OdbcConnection(CONNECTION_STRING)) { con.Open(); string sql = "SELECT * FROM TBLCAT"; using (OdbcCommand cmd = new OdbcCommand(sql, con)) { using (OdbcDataAdapter adapter = new OdbcDataAdapter(cmd)) { adapter.Fill(dt); } } } dataGridView1.DataSource = dt; dataGridView1.Sort(dataGridView1.Columns[0], ListSortDirection.Ascending); } /// <summary> /// 追加ボタンクリックイベント. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btn_add_Click(object sender, EventArgs e) { using (OdbcConnection con = new OdbcConnection(CONNECTION_STRING)) { con.Open(); string sql = "INSERT INTO TBLCAT VALUES(10, '5', 'こなつ', '♀', '6', '03', '布団')"; using (OdbcCommand cmd = new OdbcCommand(sql, con)) { int ret = cmd.ExecuteNonQuery(); if (ret != 1) { MessageBox.Show("登録に失敗しました。"); } } } // 再検索 search(); } /// <summary> /// 更新ボタンクリックイベント. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btn_upd_Click(object sender, EventArgs e) { using (OdbcConnection con = new OdbcConnection(CONNECTION_STRING)) { con.Open(); string sql = "UPDATE TBLCAT SET FAVORITE = 'CIAOちゅ〜る' WHERE NAME = 'りく'"; using (OdbcCommand cmd = new OdbcCommand(sql, con)) { int ret = cmd.ExecuteNonQuery(); if (ret != 1) { MessageBox.Show("更新に失敗しました。"); } } } // 再検索 search(); } /// <summary> /// 削除ボタンクリックイベント. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void btn_del_Click(object sender, EventArgs e) { using (OdbcConnection con = new OdbcConnection(CONNECTION_STRING)) { con.Open(); string sql = "DELETE FROM TBLCAT WHERE NAME = 'こなつ'"; using (OdbcCommand cmd = new OdbcCommand(sql, con)) { int ret = cmd.ExecuteNonQuery(); if (ret != 1) { MessageBox.Show("削除に失敗しました。"); } } } // 再検索 search(); } } }
データ操作後、再検索できるように検索メソッドに処理を分離し、
新設したボタンそれぞれのクリックイベントにてデータ操作を実行します。
起動してみる
追加ボタンをクリックします。
こなつが追加されました。
続いて更新ボタンをクリックします。
りくの好物が更新されました。
続いて削除ボタンをクリックします。
こなつが削除されました。
まとめ
Access編はこのあたりで終了しそうです。
次回はまだ特に決めていませんが、また何か新しいことを試してみたいですね。
ではでは。
ディスカッション
コメント一覧
まだ、コメントがありません