日期:2014-05-18  浏览次数:20523 次

如何向数据库关系的子表同时插入多条记录(父表的一条记录对应子表的多条记录)?
如何向数据库关系的子表同时插入多条记录(父表的一条记录对应子表的多条记录)?

我现在是和一般的插入操作是一样的,有多条,就做多次操作,一条一条的插入。这样感觉速度性能会有影响。有没有更好的方法

------解决方案--------------------

给你个很ok的方法啊,把你的N 条 sql 语句塞进 List<string>里,传入介个方法,保证你很happy
C# code


#region 带事务操作数据库
        /// <summary>
        /// 带事务的批量操作数据。
        /// </summary>
        /// <param name="sqlInsert">SQL</param>
        /// <returns>操作是否成功</returns>
        public static bool OperateDatasWithTransaction(List<string> sqlList)
        {
            OracleConnection myConnection = new OracleConnection(System.Configuration.ConfigurationSettings.AppSettings["ConnStrOrcl"]);
                myConnection.Open();
                OracleCommand myCommand = myConnection.CreateCommand();
                OracleTransaction myTrans;
                // Start a local transaction
                myTrans = myConnection.BeginTransaction(IsolationLevel.ReadCommitted);
                // Assign transaction object for a pending local transaction
                myCommand.Connection = myConnection;
                myCommand.Transaction = myTrans;
                try
                {
                    foreach (string item in sqlList)
                    {
                        myCommand.CommandText = item;
                        myCommand.ExecuteNonQuery();
                    }
                    myTrans.Commit();
                    return true;
                }
                catch (Exception)
                {
                    myTrans.Rollback();
                    return false;
                }
                finally
                {
                    myConnection.Close();
                }


        }
        #endregion