c#  access  事务处理.就是http://community.csdn.net/Expert/TopicView1.asp?id=5600412这个思路.谢谢了.

解决方案 »

  1.   

    /// <summary>
        /// 批量执行Sql语句
        /// </summary>
        /// <param name="BatchSql">Sql语句数组</param>
        public static void ExecuteBatch(string[] BatchSql)
        {
            SqlDatabase db = GetSqlDatabase();
            using (SqlConnection dbconn = (SqlConnection)db.CreateConnection())
            {
                //打开连接
                dbconn.Open();            //创建事务
                SqlTransaction dbtran = dbconn.BeginTransaction();
                SqlCommand cmd = new SqlCommand();
                cmd.CommandType = CommandType.Text;
                try
                {   //执行多个保存数据的操作
                    for (int i = 0; i < BatchSql.Length; i++)
                    {
                        cmd.CommandText = BatchSql[i];
                        db.ExecuteNonQuery(cmd, dbtran);
                    }                //执行完成后提交事务
                    dbtran.Commit();
                }
                catch
                {
                    //回滚事务
                    dbtran.Rollback();
                    throw;
                }
                finally
                {
                    //关闭连接
                    dbconn.Close();
                }
            }
        }
    这是sql里写的,楼主可以改成oledb的
      

  2.   

    真的可以改为 olede没问题?
      

  3.   

    传说中access 2007可以写存储过程,但是那天看了下..和SQL没法比..
    路过...留名
      

  4.   

    写两次记录吧。可以将操作封装到类里,new 个对象写就行。
      

  5.   

    事务处理数据还是比较安全的
    --------------------------
    问题是access不支持?
      

  6.   

    OleDbTransaction  有这个东西的,把二楼的改一下就ok了。
      

  7.   

    access升级到SQL吧...SQLSERVER有这个功能的..
      

  8.   

    // ....
            using (OleDbConnection dbconn = new OleDbConnection(connStr))
            {         
                dbconn.Open();
                //创建事务
                OleDbTransaction dbtran = dbconn.BeginTransaction();
                OleDbCommand cmd = new OleDbCommand();
                cmd.Connection = dbconn;
                cmd.Transaction = dbtran;
                cmd.CommandType = CommandType.Text;
                try
                {  
                    cmd.CommandText = sql1;
                    cmd.ExecuteNonQuery();                cmd.CommandText = sql2;
                    cmd.ExecuteNonQuery();                //执行完成后提交事务
                    dbtran.Commit();
                }
                catch
                {
                    //回滚事务
                    dbtran.Rollback();
                    throw;
                }
            }
      

  9.   

    // ....
    using (OleDbConnection dbconn = new OleDbConnection(connStr))
    {
    dbconn.Open();
    //创建事务
    OleDbTransaction dbtran = dbconn.BeginTransaction();
    OleDbCommand cmd = new OleDbCommand();
    cmd.Connection = dbconn;
    cmd.Transaction = dbtran;
    cmd.CommandType = CommandType.Text;
    try
    {
    cmd.CommandText = sql1;
    cmd.ExecuteNonQuery();cmd.CommandText = sql2;
    cmd.ExecuteNonQuery();//执行完成后提交事务
    dbtran.Commit();
    }
    catch
    {
    //回滚事务
    dbtran.Rollback();
    throw;
    }
    }
    完全赞成
      

  10.   

    不太懂 access  有事务处理吗
      

  11.   

    OleDbTransaction ???可是 access 并不支持事务
      

  12.   

    http://blog.csdn.net/wangdetian168/archive/2007/05/10/1603122.aspx
    这里有个连接access 全套封装了