none
RECUPERAR VALOR DEL TIPO BOOLEAN DE UN BIT RRS feed

  • Pregunta

  • buenas como puedo escribir este codigo

      if (beUsuario.CambiarPasswordEnInicio == true)
          {
            chkCambiarPasswordInicio.Checked = true;
          }
          else
          {
            chkCambiarPasswordInicio.Checked = false;
          }
    

    etsa propeidad es boolean CambiarPasswordEnInicio

    el campo que recupero de la bd es bit y es 0 ó 1

    NO  y SI

    no se como escrivbir la condicion porque simpre entra al else asi recupere valor 1

    saludos

     

    domingo, 22 de mayo de 2011 16:53

Respuestas

  • porque no pones el codigo completo que usas, para ver como se plaica el filtro

    tengo la teoria que estas recuperando simpre el mismo registro con el mismo valor por eso simrpe entre en el else del if

    tambien podrias hacer

    byte val = Convert.ToByte(dr[CAMBIAR_PASSWORD_INICIO])

     if ( val  == 1){

       beUsuario.CambiarPasswordEnInicio = true;

    }

     

     


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marcado como respuesta Augusto C domingo, 22 de mayo de 2011 21:57
    domingo, 22 de mayo de 2011 21:06

Todas las respuestas

  • hola

    pero alli no puestas como es que asignas la propiedad CambiarPasswordEnInicio  cuando recuperas el registro desde la tabla de tu db

    o sea estas suando un datareader o un datatable para recuperar la informacion

    porque podrias usar

    beUsuario.CambiarPasswordEnInicio = true;

    byte val  = Convert.ToByte(reader["campotabla"])

    If(val == 0){

      beUsuario.CambiarPasswordEnInicio = false;

    }

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    domingo, 22 de mayo de 2011 17:17
  • todo vien cargado en la entidad algo asi

       BLUsuario blUsuario = new BLUsuario();
          blUsuario.ObtenerUsuario(_idUsuario);
          BEUsuario beUsuario = blUsuario.ObtenerUsuario(_idUsuario);
    
    domingo, 22 de mayo de 2011 17:31
  • claro pero sigues sin mostrar como recuoeras el campo bit de tu db

    o sea como haces el SELECT y tomas el valor del registro, veras que alli uses el  reader para refrejae que ejecutatas un Datareader para ller la informacion, tu como lo haces ?

     

    ademas alli estas invocando dos veces a ObtenerUsuario(), porque es eso ?


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    domingo, 22 de mayo de 2011 18:24
  • asi lo recupero

     if ((dr[CAMBIAR_PASSWORD_INICIO].ToString()) == "1")
                {
                  beUsuario.CambiarPasswordEnInicio = true;
                }
                else
                {
                  beUsuario.CambiarPasswordEnInicio = false;
                }
    

    si y la invocacion debe ser una vez nada mas

    saludos.

    domingo, 22 de mayo de 2011 18:34
  • bien pero entonces el problema dices que siempre se asigna el false en la propiedad

    estas recuperando diferntes registroa para cargar en la instancia de beUsuario

    o sea defines algun WHERE en la query que usas ?


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    domingo, 22 de mayo de 2011 19:23
  • No es un simple select

    domingo, 22 de mayo de 2011 19:29
  • claro ahi esta el problema esta recuperando simrpe el mismo registro

    aunque tengas 10 o 100 registros si es un simpel select sin un WHERE estas recuperando simpre el mismo por eso no notas cambio


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    domingo, 22 de mayo de 2011 19:32
  • NO

    el select tiene sus flitos recupera una fila yo slo queri poder leer algunos campos de esa fila con la condicion que puse arriba

    pero crwo qeu ese codigo esta mal

     

     if ((dr[CAMBIAR_PASSWORD_INICIO].ToString()) == "1")
    
       {
    
        beUsuario.CambiarPasswordEnInicio = true;
    
       }
    
       else
    
       {
    
        beUsuario.CambiarPasswordEnInicio = false;
    
       }
    
    


    la pregunta era si ese codigo es correcto  o si se puede hacer de otra manera porque yo tengo claro que me recupera el valor de 1 en u n momento pero en el if no entra sino se va al else de frente,entocnes com lo podia hacer el

    CAMBIAR_PASSWORD_INICIO es el campo

     cambiarpasswrodinicio

     de la tabla

    escrito asi

    private const string CAMBIAR_PASSWORD_INICIO="cambiarpasswordinicio"

     la consulta era como podia acceder a ese valor considerando que en la tabla esta declarado como bit

     

    domingo, 22 de mayo de 2011 20:04
  • porque no pones el codigo completo que usas, para ver como se plaica el filtro

    tengo la teoria que estas recuperando simpre el mismo registro con el mismo valor por eso simrpe entre en el else del if

    tambien podrias hacer

    byte val = Convert.ToByte(dr[CAMBIAR_PASSWORD_INICIO])

     if ( val  == 1){

       beUsuario.CambiarPasswordEnInicio = true;

    }

     

     


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    • Marcado como respuesta Augusto C domingo, 22 de mayo de 2011 21:57
    domingo, 22 de mayo de 2011 21:06
  • Lo puse asi

     byte val = Convert.ToByte(dr[CAMBIAR_PASSWORD_INICIO]);
                 //if ((dr[CAMBIAR_PASSWORD_INICIO].ToString()) == "1")
                if ( val == 1){
                  beUsuario.CambiarPasswordEnInicio = true;
                 }
                else
                {
                  beUsuario.CambiarPasswordEnInicio = false;
                 }
    

    y si parece funcionar creo que el problema es el tipo de variable bit que vieen de la bd.

    Bueno gracias.

    Seguire probando 

    domingo, 22 de mayo de 2011 21:56