先日、データの取得までやったので
さくっと追加・更新・削除もついでにやってみました。
(だいぶ簡単にですが)
プログラムは前回のものを流用しています。
【C#】Microsoft Access Driver で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ちゅ0る' 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編はこのあたりで終了しそうです。
次回はまだ特に決めていませんが、また何か新しいことを試してみたいですね。
ではでは。
Crieitは誰でも投稿できるサービスです。 是非記事の投稿をお願いします。どんな軽い内容でも投稿できます。
また、「こんな記事が読みたいけど見つからない!」という方は是非記事投稿リクエストボードへ!
こじんまりと作業ログやメモ、進捗を書き残しておきたい方はボード機能をご利用ください。
ボードとは?
コメント