public void ActualizaDatos(String tabla, DataTable datos) { if (_Conexion == null || datos == null) { return; } DataSet tablaDataSet = new DataSet(); String qry = "select * from " + tabla + " where 1 = 0 "; _DataAdapter = new iDB2DataAdapter(); _DataAdapter.SelectCommand = new iDB2Command(qry, _Conexion); _DataAdapter.Fill(tablaDataSet); iDB2CommandBuilder Cmb = new iDB2CommandBuilder(_DataAdapter); _DataAdapter.InsertCommand = Cmb.GetInsertCommand(); foreach (DataRow fila in datos.Rows) { fila.SetAdded(); } _DataAdapter.Update(datos); }
// Define the parameters for the UPDATE command in different ways private static void AddParameters(iDB2CommandBuilder cb) { try { cb.GetUpdateCommand().Parameters.Add("@return", iDB2DbType.iDB2Char, 1, "G_RETRN"); } catch (Exception e) { Console.WriteLine(e.Message); } }
private void GetAepmMaster() { var dt = new DataTable(); var dset = new DataSet(); //retrieve any records needing updating try { using (var conn = new iDB2Connection(ConfigurationManager.AppSettings["AS400ConnectionString"])) { // string sql = @"SELECT G_GUID, G_ITEM, G_RETRN FROM CGJLEGAC.GETMSTRL1 WHERE G_RETRN != 'R' and G_RETRN != 'S'"; string sql = GetUnprocessMasterRecsString(); var objDataAdapter = new iDB2DataAdapter(); var cmd = new iDB2Command(sql, conn); objDataAdapter.SelectCommand = cmd; objDataAdapter.SelectCommand.CommandTimeout = 0; dt.Clear(); dset.Clear(); objDataAdapter.Fill(dt); objDataAdapter.Fill(dset, "currentSelections"); var cb = new iDB2CommandBuilder(objDataAdapter); AddParameters(cb); //update records to 'S' for submitted for (int i = 0; i < dset.Tables["currentSelections"].Rows.Count; i++) { dset.Tables["currentSelections"].Rows[i]["G_RETRN"] = 'S'; } objDataAdapter.Update(dset, "currentSelections"); var taskList = new Task[dt.Rows.Count]; //submit records asynch for (int i = 0; i < dt.Rows.Count; i++) { taskList[i] = TestAsync(dt, i); } Task.WaitAll(taskList); } } catch (Exception ex) { WriteToEventLog(ex); } }