OleDbTransaction tran = con.BeginTransaction();
                str = string.Format(@"insert into Fillcards (strOldNumber,strNew numbers,strCardName,strOriginal,strHandlingpeople) values('{0}','{1}','{2}','{3}','{4}')", dr[0], newCardNum, dr[1], dr[2], handlingPeople);
                OleDbCommand com = new OleDbCommand(str, con);
                com.ExecuteNonQuery();
                com.Transaction = tran;
                str = string.Format(@"update Newcards set strNumber = '{0}' where strIDCard = '{1}'",newCardNum,ID);
                com = new OleDbCommand(str, con);
                com.ExecuteNonQuery();
                com.Transaction = tran;
                try
                {
                    tran.Commit();
                    return 1;
                }
                catch (Exception e)
                {
                    tran.Rollback();
                    return 4;
                }
                finally
                {
                    dr.Close();
                }
编译器错误信息: CS1023: 嵌入的语句不能是声明或标记语句源错误: 行 82:             //{
行 83:                 //开始事务
行 84:                 OleDbTransaction tran = con.BeginTransaction();
行 85:                 str = string.Format(@"insert into Fillcards (strOldNumber,strNew numbers,strCardName,strOriginal,strHandlingpeople) values('{0}','{1}','{2}','{3}','{4}')", dr[0], newCardNum, dr[1], dr[2], handlingPeople);
行 86:                 OleDbCommand com = new OleDbCommand(str, con);
 

解决方案 »

  1.   

      OleDbTransaction tran  = new OleDbTransaction ()
    tran = con.BeginTransaction(); 
      

  2.   

     实例化了,突然又好的,上面事务错了,不是那么用的。
    正确方法
      str = string.Format(@"insert into Fillcards (strOldNumber,strNewnumbers,strCardName,strOriginal,strHandlingpeople) values('{0}','{1}','{2}','{3}','{4}')", dr[0].ToString(), newCardNum, dr[1].ToString(), dr[2].ToString(), handlingPeople);
                    OleDbCommand com = new OleDbCommand(str, con);
                    com.Transaction = tran;
                    com.ExecuteNonQuery();
        str = string.Format(@"update Newcards set strNumber = '{0}' where strIDCard = '{1}'", newCardNum, ID);
                    com.CommandText = str;
                    com.ExecuteNonQuery();
       tran.Commit();