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); }
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); }