意思是:
我在网面后台写入两个插入语句分别是两个表的insert into aa values........
insert into bb values........当第一个插入语句完成时,突然网面被关掉或是突然断电了使得第二个插入语句没执行,只执行了第一个插入语句,有没有办法:
当第一个插入语句完成时,突然网面被关掉或是突然断电了,使第一个插入语句不能完成 ,
就是说要么就两个插入语句都执行了,不然就都没执行方法详细点…………

解决方案 »

  1.   

    begin transactioncommit transactionrollback transaction
      

  2.   

    给你一个方法,执行的多条语句放这个list里面,用事务执行,有一条失败就rollback
            /// <summary>
            /// 执行多个Sql查询语句,同时进行事务处理
            /// </summary>
            /// <param name="querys">sql语句列表</param>
            /// <returns>成功或失败</returns>
            public bool ExecuteSqlWithTransaction(List<string> querys)
            {
                SqlTransaction trans = null;
                //打开连接
                if (openConnection())
                {
                    trans = sqlCon.BeginTransaction();
                    sqlComm = new SqlCommand();
                    sqlComm.Connection = sqlCon;
                    sqlComm.Transaction = trans;
                    try
                    {
                        for (int i = 0; i < querys.Count; i++)
                        {
                            sqlComm.CommandText = querys[i];
                            sqlComm.ExecuteNonQuery();
                        }
                        trans.Commit();
                    }
                    catch (Exception)
                    {
                        trans.Rollback();
                        return false;
                    }
                    finally
                    {
                        //关闭连接
                        closeConnection();
                    }
                }
                else
                {
                    return false;
                }
                return true;
            }
      

  3.   

    就是用事物了。 sqltransaction  有 存储过程的,也有在后台的,楼上给的是在后台的实现。