java中对批量数据处理有一个常用方法:        String userSql = "insert into XXXX";
con.setAutoCommit(false);
pstm = con.prepareStatement(userSql);
        for (int i = 1; i <= 1000000; i++) {
    pstm.addBatch();
            if (i % 10000 == 0 && i != 0) {
pstm.executeBatch();
    }
}
con.commit();
con.setAutoCommit(true);
    使用.net多日,一直找不到类似的批处理方法,不知道有无相同方法

解决方案 »

  1.   

    .net可以用Transaction类实现显式事务,但建议用using关键字实现隐性事务。
      

  2.   

            /// <summary>
            /// 执行多条SQL语句,实现数据库事务。
            /// </summary>
            /// <param name="SQLStringList">SQL语句组</param>
            public static void ExecuteSqlTran(ArrayList SQLStringList)
            {
                using (SqlConnection conn = new SqlConnection(connectionString))
                {
                    conn.Open();
                    SqlCommand cmd = new SqlCommand();
                    cmd.Connection = conn;
                    SqlTransaction tx = conn.BeginTransaction();
                    cmd.Transaction = tx;
                    try
                    {
                        for (int n = 0; n != SQLStringList.Count; ++n)
                        {
                            string strsql = SQLStringList[n].ToString();
                            if (strsql.Trim().Length > 1)
                            {
                                cmd.CommandText = strsql;
                                cmd.ExecuteNonQuery();
                            }
                        }
                        tx.Commit();
                    }
                    catch (SqlException E)
                    {
                        tx.Rollback();
                        throw new Exception(E.Message);
                    }
                }
            }