miércoles, 30 de diciembre de 2015

C# - Insert/Update/Select/SP con Enterprise Library

/********************************INSERT/UPDATE***************************/
public bool GrabaNominaPagoProveedorEnc(BeNominaPagoProveedorEncabezado obj)
        {
            try
            {
                //BeNominaPagoProveedorEncabezado
                var result = false;
                var upd = 0;
                var ins = 0;
                Database db = DatabaseFactory.CreateDatabase("LeaseOper");

                //intento actualizar, de no haber filas afectadas inserto.
                DbCommand command = db.GetSqlStringCommand("UPDATE dbo.t_nomina_pago_proveedor_enc SET numero_nomina = @numero_nomina ,fecha_nomina = @fecha_nomina ,total_nomina = @total_nomina ,envio_contab = @envio_contab ,cod_usuario = @envio_contab,fecha_ingreso_reg = @fecha_ingreso_reg,estado = @estado WHERE numero_nomina = @numero_nomina");
                db.AddInParameter(command, "@numero_nomina", DbType.Int32, obj.NumeroNomina);
                db.AddInParameter(command, "@fecha_nomina", DbType.DateTime, obj.FechaNomina);
                db.AddInParameter(command, "@total_nomina", DbType.Single, obj.TotalNomina);
                db.AddInParameter(command, "@envio_contab", DbType.Int32, obj.EnvioContab);
                db.AddInParameter(command, "@cod_usuario", DbType.Int32, obj.CodUsuario);
                db.AddInParameter(command, "@fecha_ingreso_reg", DbType.DateTime, obj.FechaIngreso);
                db.AddInParameter(command, "@estado", DbType.Int16, obj.Estado);

                upd = db.ExecuteNonQuery(command);

                if (upd == 0)
                {
                    command =
                        db.GetSqlStringCommand(
                            "INSERT INTO dbo.t_nomina_pago_proveedor_enc ( numero_nomina ,fecha_nomina ,total_nomina ,envio_contab ,cod_usuario ,fecha_ingreso_reg ,estado) VALUES ( @numero_nomina ,@fecha_nomina ,@total_nomina ,@envio_contab ,@cod_usuario ,@fecha_ingreso_reg ,@estado)");
                    db.AddInParameter(command, "@numero_nomina", DbType.Int32, obj.NumeroNomina);
                    db.AddInParameter(command, "@fecha_nomina", DbType.DateTime, obj.FechaNomina);
                    db.AddInParameter(command, "@total_nomina", DbType.Single, obj.TotalNomina);
                    db.AddInParameter(command, "@envio_contab", DbType.Int32, obj.EnvioContab);
                    db.AddInParameter(command, "@cod_usuario", DbType.Int32, obj.CodUsuario);
                    db.AddInParameter(command, "@fecha_ingreso_reg", DbType.DateTime, obj.FechaIngreso);
                    db.AddInParameter(command, "@estado", DbType.Int16, obj.Estado);

                    ins = db.ExecuteNonQuery(command);
                }
                //compruebo si hubo actualización o inserción
                if (upd > 0 || ins > 0)
                    result = true;

                //cierro las conexiones
                command.Connection.Close();
                command.Connection.Dispose();
                //devuelvo el resultado
                return result;
            }
            catch (Exception ex)
            {

                return false;
            }
        }

/********************************SELECT***************************/
   public DataTable SelectReqPagoDetalle(int numeroReq)
        {
            DataSet ds = new DataSet();
            var dt = new DataTable();
            try
            {
                var result = false;
                var upd = 0;
                var ins = 0;
                Database db = DatabaseFactory.CreateDatabase("LeaseOper");

                //intento actualizar, de no haber filas afectadas inserto.
                DbCommand command =
                    db.GetSqlStringCommand(
                        "SELECT corrrelativo ,num_req ,monto ,rut_beneficiario ,digito ,nombre_beneficiario ,modo_pago ,cod_inst_financ ,cta_cte ,cod_sucursal ,cuenta_contable ,observacion ,envio_contab ,envio_banco ,fecha_envio_banco ,usuario_envio_banco ,fecha_ingreso_reg ,estado FROM  leaseoper..t_req_pago_detalle WHERE num_req = @num_req");
                db.AddInParameter(command, "@num_req", DbType.Int32, numeroReq);

                ds = db.ExecuteDataSet(command);

                command.Connection.Close();
                command.Connection.Dispose();
            }
            catch (Exception ex)
            {
                throw ex;
            }
         
            if (ds != null && ds.Tables.Count > 0)
            {
                dt = ds.Tables[0];
            }
            return dt;
        }

/********************************SP*************************************/

 public DataTable ValidayCargaExcelDetalleAnticipo(int idAnticipo, Int16 tipoProceso, DataTable dt)
        {
            Database db = DatabaseFactory.CreateDatabase("LeaseOper");
            var ds = new DataSet();
            var retorno = false;
            var dataTable = new DataTable();
            try
            {
                using (var cnxx = new SqlConnection(db.ConnectionString))
                {
                    SqlCommand cmd = new SqlCommand("pa_lo_valida_y_carga_det_insc_trans", cnxx);
                    cmd.CommandType = CommandType.StoredProcedure;                
               

                    db.AddInParameter(cmd, "@id_anticipo", DbType.Int32, idAnticipo);
                    db.AddInParameter(cmd, "@tipo_proceso", DbType.Int16, tipoProceso);
                    db.AddOutParameter(cmd, "@cod_error", DbType.Int32, int.MaxValue);
                    db.AddOutParameter(cmd, "@desc_error", DbType.String, int.MaxValue);

                    cmd.Connection.Open();
                    SqlDataAdapter theDataAdapter = new SqlDataAdapter(cmd);

                    //var mensaje = db.GetParameterValue(cmd, "@cod_error");
                    //var codigoRespuesta = db.GetParameterValue(cmd, "@desc_error");

                    theDataAdapter.Fill(ds);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            if (ds.Tables[0].Rows.Count > 0)
                return ds.Tables[0];
            return dataTable;
        }

lunes, 21 de diciembre de 2015

C# - Obtener valor desde una celda, en un row seleccionado (GRID)

var numMinuta = gvParent.GetRowValues(gvParent.FocusedRowIndex,
"ID_MINUTA");

miércoles, 9 de diciembre de 2015

C# - Gif cargando al presionar botón

//previo al update panel de la pagina.
<div class="centrar">
        <asp:UpdatePanel ID="udpanel" runat="server">
            <ContentTemplate>
                <dx:ASPxButton ID="btnLoad" runat="server" ClientInstanceName="btnLoad" Text="" ClientVisible="false"
                    AutoPostBack="true" OnClick="btnLoad_Click">
                </dx:ASPxButton>
                <asp:UpdateProgress ID="UpdateProgress1" runat="server">
                    <ProgressTemplate>
                        <table width="100%" border="0" cellpadding="0" cellspacing="0" class="bonder">
                            <tr>
                                <td colspan="3">&nbsp;
                                 
                                </td>
                            </tr>
                            <tr>
                                <td width="30">&nbsp;
                                 
                                </td>
                                <td align="center">
                                    <table width="100%" border="0" cellpadding="0" cellspacing="0" class="td-colum">
                                        <tr>
                                            <td align="center" style="color: white; font-weight: bold">
                                                Cargando
                                            </td>
                                        </tr>
                                        <tr>
                                            <td align="center">
                                                <dx:ASPxImage ID="ASPxImage1" runat="server" ImageUrl="~/Images/carga.gif" Width="160px"
                                                    Height="24">
                                                </dx:ASPxImage>
                                            </td>
                                        </tr>
                                    </table>
                                </td>
                                <td width="30">&nbsp;
                                 
                                </td>
                            </tr>
                            <tr>
                                <td colspan="3">&nbsp;
                                 
                                </td>
                            </tr>
                        </table>
                    </ProgressTemplate>
                </asp:UpdateProgress>
            </ContentTemplate>
        </asp:UpdatePanel>
    </div>
  <asp:UpdatePanel ID="UpdatePanel1" runat="server">
//contenido, eventos y botones de la página
 </asp:UpdatePanel>

miércoles, 2 de diciembre de 2015

C# - DEVEXPRESS Evitar que una grilla se llene por primera vez

//PAGE INIT , la grilla tiene un evento selecting, con este evento se puede cancelar la carga la primera vez.

 protected void Page_Init(object sender, EventArgs e)
        {
            ObjDataDocumentos.Selecting += ObjDataSourceDocumentos_Selecting;      
         
        }


//dentro de este evento cancelo la carga si es la primera vez que entro a la pantalla
  void ObjDataSourceDocumentos_Selecting(object sender, ObjectDataSourceSelectingEventArgs e)
        {
            if (IsPostBack)
            {
                e.InputParameters["todos"] = Convert.ToByte(chkTodos.Checked == true ? 1 : 0);            
            }
            else
            {
                e.Cancel = true;
            }
        }

martes, 1 de diciembre de 2015

SQL - Tablas con registros en la Base de Datos

--USE BASE_DE_DATOS
SET NOCOUNT ON DBCC UPDATEUSAGE(0) -- DB size.
--EXEC sp_spaceused-- Table row counts and sizes.
CREATE TABLE #t (     [name] NVARCHAR(128),  
 [rows] CHAR(11),  
 reserved VARCHAR(18),    
 data VARCHAR(18),    
 index_size VARCHAR(18),  
 unused VARCHAR(18))
INSERT #t EXEC sp_msForEachTable 'EXEC sp_spaceused ''?'''
SELECT 'TABLAS CON MAS DE UN REGISTRO',* FROM   #t WHERE rows > 0   -- # of rows.
SELECT COUNT(*) AS tablas_con_datos FROM   #t WHERE rows > 0
DROP TABLE #t