protected void btnGo_Click(object sender, EventArgs e) { System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection(); string sql = ""; System.Data.DataSet ds = new System.Data.DataSet(); System.Data.OleDb.OleDbDataReader dr; System.Data.OleDb.OleDbCommand comm = new System.Data.OleDb.OleDbCommand(); //http://www.c-sharpcorner.com/UploadFile/dchoksi/transaction02132007020042AM/transaction.aspx //get this from connectionstrings.com/access conn.ConnectionString = txtConnString.Text; conn.Open(); //here I can talk to my db... System.Data.OleDb.OleDbTransaction Trans; Trans = conn.BeginTransaction(System.Data.IsolationLevel.Chaos); try { comm.Connection = conn; comm.Transaction = Trans; // Trans.Begin(); //Console.WriteLine(conn.State); sql = txtSQL.Text; comm.CommandText = sql; if (sql.ToLower().IndexOf("select") == 0) { dr = comm.ExecuteReader(); while (dr.Read()) { txtresults.Text = dr.GetValue(0).ToString(); } } else { txtresults.Text = comm.ExecuteNonQuery().ToString(); } Trans.Commit(); } catch (Exception ex) { txtresults.Text = ex.Message; Trans.Rollback(); } finally { comm.Dispose(); conn.Close(); conn = null; } }
public void SetAutoCommit(System.Data.OleDb.OleDbConnection connection, bool boolean) { if (this[connection] != null) { ConnectionProperties Properties = ((ConnectionProperties)this[connection]); Properties.AutoCommit = boolean; if (!boolean) { System.Data.OleDb.OleDbTransaction transaction = Properties.Transaction; if (Properties.TransactionLevel == 0) { transaction = connection.BeginTransaction(); } else { transaction = connection.BeginTransaction(Properties.TransactionLevel); } } } else { ConnectionProperties TempProp = new ConnectionProperties(); TempProp.AutoCommit = boolean; TempProp.TransactionLevel = 0; if (boolean) { TempProp.Transaction = connection.BeginTransaction(); } Add(connection, TempProp); } }
static void RunTransaction(System.Data.OleDb.OleDbConnection cn, bool hasError) { using (var tr = cn.BeginTransaction()) { try { Insert(cn, tr); if (hasError) { throw new Exception(); } Update(cn, tr); tr.Commit(); Console.WriteLine("Commit"); } catch (Exception e) { Console.WriteLine(e.ToString()); tr.Rollback(); Console.WriteLine("Rollback"); } Console.WriteLine("End Transaction"); } }
protected override void DataAdapterUpdate(System.Data.DataSet tabela, string strNomeTabela) { if (m_bUserCanUpdateDB) { OpenConnection(); if (m_Connection.State == System.Data.ConnectionState.Open) { if (tabela.GetChanges() != null) { m_Transaction = m_Connection.BeginTransaction(); m_CommandSelect.Transaction = m_Transaction; try { m_DataAdapter.Update(tabela, strNomeTabela); m_Transaction.Commit(); DataPersist = false; } catch (System.Exception eEcp) { m_excError = eEcp; m_excError.Source = strNomeTabela; m_Transaction.Rollback(); ShowDialogUpdateError(strNomeTabela); } } } CloseConnection(); } }
private void button1_Click(object sender, EventArgs e) { var cn = new System.Data.OleDb.OleDbConnection( "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=C:\\C#2017\\SampleDB.accdb;"); //DBに接続してトランザクションを開始、適用する cn.Open(); var cmd = new System.Data.OleDb.OleDbCommand( "INSERT INTO 社員 VALUES(100101, '井ノ上真央', 'B-001')", cn); var tr = cn.BeginTransaction(); //トランザクションを開始 cmd.Transaction = tr; //トランザクションを適用 //DBを更新し、トランザクションを確定または中止する try { cmd.ExecuteNonQuery(); tr.Commit(); MessageBox.Show("終了しました。", "通知"); } catch (Exception ex) { tr.Rollback(); MessageBox.Show(ex.Message, "エラー"); MessageBox.Show("ロールバックしました。", "通知"); } cn.Close(); }
public static void DBLogOut(UpdateLog[] logDatas) { if (System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"] == null) { return; } string connString = System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"].Trim(); connString = BenQGuru.eMES.Common.Helper.EncryptionHelper.DESDecryption(connString); System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection(connString); System.Data.OleDb.OleDbTransaction trans = null; try { conn.Open(); System.Data.OleDb.OleDbCommand comm = conn.CreateCommand(); trans = conn.BeginTransaction(); comm.Transaction = trans; foreach (UpdateLog log in logDatas) { string updateSQL = "INSERT INTO TBLUPDATELOG " + " (UPDATELOGID,FILENAME,VERSION,MACHINENAME,MACHINEIP,UPDATETIME,RESULT)" + " values ('" + log.PKID + "'" + " ,'" + log.FileName + "'" + " ,'" + log.Version + "'" + " ,'" + log.MachineName + "'" + " ,'" + log.MachineIP + "'" + " ,'" + log.UpdateTime + "'" + " ,'" + log.Result + "')"; comm.CommandText = updateSQL; comm.CommandType = System.Data.CommandType.Text; comm.ExecuteNonQuery(); } trans.Commit(); } catch (Exception ex) { if (trans != null) { trans.Rollback(); } } finally { conn.Close(); } }
private void button1_Click(object sender, EventArgs e) { var cn = new System.Data.OleDb.OleDbConnection( "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=C:\\C#2017\\SampleDB.accdb;"); //DBに接続してトランザクションを開始する cn.Open(); var tr = cn.BeginTransaction(); MessageBox.Show("トランザクションを開始しました。", "通知"); //トランザクションを終了して接続を閉じる tr.Commit(); MessageBox.Show("トランザクションを終了しました。", "通知"); cn.Close(); }
public static void EmpezarTransaccion() { Conectar(); if (transaccion != null) { return; } try { transaccion = cnx.BeginTransaction(); } catch (System.Exception ex) { transaccion = null; throw new System.Exception("Conexion: Error al empezar la transacci�n.", ex); } }
private void button1_Click(object sender, EventArgs e) { var cn = new System.Data.OleDb.OleDbConnection( "Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source=C:\\C#2018\\SampleDB.accdb;"); //DBに接続してトランザクションを開始する cn.Open(); var cmd = cn.CreateCommand(); var tr = cn.BeginTransaction(); //トランザクションを適用し、レコードを追加する cmd.Connection = cn; cmd.Transaction = tr; cmd.CommandText = "INSERT INTO 社員 VALUES(100101, '井ノ上真央', 'B-001')"; cmd.ExecuteNonQuery(); //レコードを追加 //トランザクションを確定して接続を閉じる tr.Commit(); MessageBox.Show("処理を終了しました。", "通知"); cn.Close(); }