Example #1
0
        private ArrayList Armar_Inserts(DataSet ds, DataSet ds1)
        {
            DataTable tabla1   = ds1.Tables[0];
            DataTable tabla2   = ds.Tables[0];
            ArrayList sqls     = new ArrayList();
            int       cont     = 0;
            DataSet   dsLineas = new DataSet();

            DBFunctions.Request(dsLineas, IncludeSchema.NO, "SELECT PLIN_TIPO,PLIN_CODIGO FROM DBXSCHEMA.PLINEAITEM; SELECT MITE_CODIGO FROM MITEMS;");
            for (int i = 0; i < ds1.Tables[0].Rows.Count; i++)
            {
                string sql         = "INSERT INTO " + ddltabla.SelectedValue + " VALUES(";
                bool   validaMitem = true;
                //crear dataset para las lineas

                for (int j = 0; j < ds1.Tables[0].Columns.Count; j++)
                {
                    if (j != ds1.Tables[0].Columns.Count - 1)
                    {
                        if (ddltabla.SelectedValue == "MITEMS" && j == 0)
                        {
                            DataRow[] laLinea = dsLineas.Tables[0].Select("PLIN_CODIGO = '" + ds1.Tables[0].Rows[i]["PLIN_CODIGO"] + "'");
                            string    refer   = "";
                            if (laLinea.Length > 0)
                            {
                                if (!Referencias.Guardar(ds1.Tables[0].Rows[i]["MITE_CODIGO"].ToString(), ref refer, laLinea[0].ItemArray[0].ToString()))
                                {
                                    err        += "<p style=\"COLOR: red\"> Item Inválido " + ds1.Tables[0].Rows[i]["MITE_CODIGO"].ToString() + " Por favor revise la Fila número " + (i + 2) + " en su archivo Excel</p><br>";
                                    validaMitem = false;
                                    break;
                                }
                                else
                                {
                                    /*if (dsLineas.Tables[1].Select("MITE_CODIGO = '" + refer + "'").Length > 0)
                                     * {
                                     *  err += "<p style=\"COLOR: red\"> Item Inválido " + ds1.Tables[0].Rows[i]["MITE_CODIGO"].ToString() + ", Existe en la Base de Datos, Por favor revise su excel en la linea " + (i+2) + "</p><br>";
                                     * }*/
                                    sql += Analizar_Campo(refer, ds.Tables[0].Rows[j][2].ToString(), ds.Tables[0].Rows[j][4].ToString(), ref err, ds1.Tables[0].Columns[j].ColumnName, i, ref cont) + ",";
                                }
                            }
                            else
                            {
                                err        += "<p style=\"COLOR: red\"> Linea Inválida " + ds1.Tables[0].Rows[i]["PLIN_CODIGO"].ToString() + " Por favor revise la Fila número " + (i + 2) + " en su archivo Excel</p><br>";
                                validaMitem = false;
                                break;
                            }
                        }
                        else
                        {
                            sql += Analizar_Campo(ds1.Tables[0].Rows[i][j].ToString(), ds.Tables[0].Rows[j][2].ToString(), ds.Tables[0].Rows[j][4].ToString(), ref err, ds1.Tables[0].Columns[j].ColumnName, i, ref cont) + ",";
                        }
                    }
                    else
                    {
                        sql += Analizar_Campo(ds1.Tables[0].Rows[i][j].ToString(), ds.Tables[0].Rows[j][2].ToString(), ds.Tables[0].Rows[j][4].ToString(), ref err, ds1.Tables[0].Columns[j].ColumnName, i, ref cont) + ")";
                    }
                }
                //if (cont < 1)
                //{
                //    sqls.Add(sql);
                //    cont = 0;
                //}
                if (validaMitem)
                {
                    sqls.Add(sql);
                }
            }
            //if (cont == 0)
            //return null;

            return(sqls);
        }
Example #2
0
        protected bool insertTable(DataTable table1, DataTable table2)
        {
            if (ddltabla.SelectedValue == "MITEMS")
            {
                //CAMBIAR REFERENCIA POR MEDIO DE LA LINEA
                for (int i = 0; i < table2.Rows.Count; i++)
                {
                    string codItAlma = "";
                    Referencias.Guardar(table2.Rows[i][0].ToString().Replace('"', ' ').Trim(), ref codItAlma, DBFunctions.SingleData("SELECT plin_tipo FROM plineaitem WHERE plin_codigo='" + table2.Rows[i][2].ToString().Trim() + "'"));
                    table2.Rows[i][0] = codItAlma;
                }
            }
            //Insert
            bool   rta      = false;
            string servidor = ConfigurationManager.AppSettings["Server" + GlobalData.getEMPRESA()];
            string database = ConfigurationManager.AppSettings["DataBase" + GlobalData.getEMPRESA()];
            string usuario  = ConfigurationManager.AppSettings["UID"];
            string password = ConfigurationManager.AppSettings["PWD" + GlobalData.getEMPRESA()];

            string timeout = ConfigurationManager.AppSettings["ConnectionTimeout"];
            string port    = ConfigurationManager.AppSettings["DataBasePort"];

            AMS.CriptoServiceProvider.Crypto miCripto = new Crypto(AMS.CriptoServiceProvider.Crypto.CryptoProvider.TripleDES);
            miCripto.IV  = ConfigurationManager.AppSettings["VectorInicialEncriptacion"];
            miCripto.Key = ConfigurationManager.AppSettings["ValorConcatClavePrivada"];
            string newPwd           = miCripto.DescifrarCadena(password);
            string connectionString = "Server=" + servidor + ":" + port + ";DataBase=" + database + ";UID=" + usuario + ";PWD=" + newPwd + "";


            //IBM.Data.DB2.DB2BulkCopy dbBulkcopy = new IBM.Data.DB2.DB2BulkCopy(connectionString, IBM.Data.DB2.DB2BulkCopyOptions.KeepIdentity);
            using (var dbBulkcopy = new IBM.Data.DB2.DB2BulkCopy(connectionString, IBM.Data.DB2.DB2BulkCopyOptions.Default))
            {
                // my DataTable column names match my SQL Column names, so I simply made this loop. However if your column names don't match, just pass in which datatable name matches the SQL column name in Column Mappings
                if (table1.Rows.Count == table2.Columns.Count)
                {
                    foreach (DataColumn col in table2.Columns)
                    {
                        dbBulkcopy.ColumnMappings.Add(col.ColumnName, col.ColumnName);
                    }
                    dbBulkcopy.BulkCopyTimeout      = 600;
                    dbBulkcopy.DestinationTableName = ddltabla.SelectedValue;

                    try
                    {
                        dbBulkcopy.WriteToServer(table2);
                        dbBulkcopy.Close();
                        DBFunctions.closeConnection();
                        rta = true;
                    }
                    catch (Exception z)
                    {
                        dbBulkcopy.Close();
                        DBFunctions.closeConnection();
                        rta = false;
                        Utils.MostrarAlerta(Response, "No se ingresó ningún registro debido a que el archivo Excel presenta fallas. \n Por favor revise su archivo o pruebe con el botón Revisar y Subir");
                        lbError.Text = z.Message;
                    }
                }
            }
            return(rta);
        }