ACCESSのデータ、登録、更新、削除の方法を紹介していきます。
ACCESSデータベースへの接続方法がわからない方は、先にこちらの記事を参考にしてみてください。
ACCESSデータベースの接続方法とデータの取得方法を記載しています。
それでは、C#からACCESSのデータの更新方法を見ていきましょう。
ACCESSデータベースのデータ更新
ACCESSのデータの登録、更新、削除をしていきます。
対象のデータは、下記の画像のような3件のデータになっています。
C#からACCESSのデータを更新してみましょう。
1.名前が「伊藤」のデータを更新
2.新しいデータを1件追加
3.名前が「田中」のデータを削除
using System;
using System.Data.OleDb;
using System.Text;
using System.Windows.Forms;
namespace c_sharp
{
public partial class frmAccessUpd : Form
{
public frmAccessUpd()
{
InitializeComponent();
}
private void frmAccessUpd_Load(object sender, EventArgs e)
{
//SQL作成
StringBuilder sql = new StringBuilder();
sql.AppendLine("UPDATE 名前テーブル");
sql.AppendLine("SET 動物 = 'ANIMAL'");
sql.AppendLine("WHERE 名前 = '伊藤'");
StringBuilder sql2 = new StringBuilder();
sql2.AppendLine("INSERT INTO 名前テーブル(");
sql2.AppendLine("ID");
sql2.AppendLine(",名前");
sql2.AppendLine(",動物");
sql2.AppendLine(",身長");
sql2.AppendLine(")VALUES(");
sql2.AppendLine("4");
sql2.AppendLine(",'山田'");
sql2.AppendLine(",'いぬ'");
sql2.AppendLine(",170");
sql2.AppendLine(")");
StringBuilder sql3 = new StringBuilder();
sql3.AppendLine("DELETE FROM 名前テーブル");
sql3.AppendLine("WHERE 名前 = '田中'");
//Access接続準備
OleDbCommand command = new OleDbCommand();
OleDbConnection cnAccess = new OleDbConnection();
cnAccess.ConnectionString = Properties.Settings.Default.AccessCon;
//Access接続開始
cnAccess.Open();
//トランザクション開始
OleDbTransaction tran = cnAccess.BeginTransaction();
try
{
command.Connection = cnAccess;
command.Transaction = tran;
command.CommandText = sql.ToString();
command.ExecuteNonQuery();
command.CommandText = sql2.ToString();
command.ExecuteNonQuery();
command.CommandText = sql3.ToString();
command.ExecuteNonQuery();
tran.Commit();
}
catch
{
tran.Rollback();
throw;
}
finally
{
command.Dispose();
cnAccess.Close();
}
}
}
}
解説
18~21行目:名前が「伊藤」のデータを更新 するためのSQLを作成
23~34行目:新しいデータを1件追加 するためのSQLを作成
36~38行目:名前が「田中」のデータを削除 するためのSQLを作成
41~42行目:SQLを実行するのに必要な変数を設定
43行目:作成した接続文字列を設定
46目:ACCESSに接続
49行目:トランザクションを開始(トランザクションがわからない方はこちらを参考にしてみてください。)
53~54行目:コネクションの設定とトランザクションの設定
56~63行目:各SQLを実行(command.ExecuteNonQuery();)
結果
まとめ
今回はACCESSデータベースの更新方法を紹介しました。
実行するときは、トランザクションを開始してから実行するようにしましょう。
実行するには「OleDbCommand.ExecuteNonQuery()」を利用しましょう。