Ejemplo n.º 1
0
        public override bool Import(DataTable Data, ODAParameter[] Prms)
        {
            DataTable  ImportData = Data.Copy();
            IDbCommand Cmd        = OpenCommand();

            try
            {
                AseBulkCopy sqlbulkcopy = new AseBulkCopy((AseConnection)Cmd.Connection);
                for (int i = 0; i < Prms.Length; i++)
                {
                    if (ImportData.Columns.Contains(Prms[i].ParamsName))
                    {
                        AseBulkCopyColumnMapping colMap = new AseBulkCopyColumnMapping(ImportData.Columns[i].ColumnName, Prms[i].ParamsName);
                        sqlbulkcopy.ColumnMappings.Add(colMap);
                    }
                }
                sqlbulkcopy.BulkCopyTimeout = 600000;
                //需要操作的数据库表名
                sqlbulkcopy.DestinationTableName = ImportData.TableName;
                //将内存表表写入
                sqlbulkcopy.WriteToServer(ImportData);
                sqlbulkcopy.Close();
                return(true);
            }
            finally
            {
                CloseCommand(Cmd);
            }
        }
Ejemplo n.º 2
0
        public override bool Import(DataTable Data, ODAParameter[] Prms)
        {
            AseBulkCopy   sqlbulkcopy = null;
            IDbConnection conn        = null;
            DataTable     ImportData  = Data.Copy();

            try
            {
                if (this.Transaction == null)
                {
                    conn        = this.GetConnection();
                    sqlbulkcopy = new AseBulkCopy((AseConnection)conn, AseBulkCopyOptions.KeepIdentity | AseBulkCopyOptions.KeepNulls | AseBulkCopyOptions.TableLock | AseBulkCopyOptions.UseInternalTransaction, null);
                }
                else
                {
                    sqlbulkcopy = new AseBulkCopy((AseConnection)this.Transaction.Connection, AseBulkCopyOptions.KeepIdentity | AseBulkCopyOptions.KeepNulls | AseBulkCopyOptions.TableLock, (AseTransaction)this.Transaction);
                }

                for (int i = 0; i < Prms.Length; i++)
                {
                    if (ImportData.Columns.Contains(Prms[i].ColumnName))
                    {
                        AseBulkCopyColumnMapping colMap = new AseBulkCopyColumnMapping(Prms[i].ColumnName, Prms[i].ParamsName);
                        sqlbulkcopy.ColumnMappings.Add(colMap);
                    }
                }
                sqlbulkcopy.BulkCopyTimeout = 600000;
                //需要操作的数据库表名
                sqlbulkcopy.DestinationTableName = ImportData.TableName;
                //将内存表表写入
                sqlbulkcopy.WriteToServer(ImportData);
                sqlbulkcopy.Close();
                return(true);
            }
            catch (Exception ex)
            {
                throw new ODAException(202, string.Format("Import data into table [{0}] error:{1}", ImportData.TableName, ex.Message));
            }
            finally
            {
                if (conn != null)
                {
                    conn.Close();
                    conn.Dispose();
                }
                if (sqlbulkcopy != null)
                {
                    sqlbulkcopy.Close();
                    sqlbulkcopy = null;
                }
            }
        }