Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/06/2014, 07:33
pmeninsaxmus16
 
Fecha de Ingreso: noviembre-2013
Mensajes: 83
Antigüedad: 11 años, 3 meses
Puntos: 0
Error al convertir objeto System.DBnull a System.String

Hola amigos, tengo este problema en mi aplicacion de C#, tengo un formulario que inserta, actualiza, lee y elimina datos de una tabla en postgres, por requerimientos se le agrego una columna a la tabla ya con datos que puede quedar nula, al agregar ese campo en mi aplicacion me lanza el error de
Error: al covertir el objeto system.dbnull a system.string

mi codigo es el siguiente en a capa DAL
Código:
List<Componente> lista = new List<Componente>();
            using (NpgsqlConnection _conn = Conexion.obtenerConexion())
            {
                try
                {
                    _conn.Open();
                    NpgsqlCommand comando = new NpgsqlCommand("select \"Id\",\"Denominacion\", coalesce(\"UnidadMedida\", ''), coalesce(\"ValorDefault\", '')  from \"Componente\"", _conn);
                    NpgsqlDataReader _reader = comando.ExecuteReader();

                    while (_reader.Read())
                    {
                        Componente compo = new Componente
                        {
                            Id = _reader.GetInt32(0),
                            Denominacion = _reader.GetString(1),
                            UnidadMedida = _reader.GetString(2),
                            ValorDefault = _reader.GetString(3),
                        };
                        lista.Add(compo);
Ya agregue los set y get en mi capa EL, al invocar este metodo para mostrarlo en la UI en un formulario con un datagrid me da ese error
mi codigo en el form es este
Código:
private void LlenarGrid(List<Componente> lista)
        {
            dgvComponente.Rows.Clear();
            int i = 0;
            foreach (Componente item in lista)
            {
                dgvComponente.Rows.Add();
                dgvComponente.Rows[i].Cells[0].Value = item.Id;
                dgvComponente.Rows[i].Cells[1].Value = item.Denominacion;
                dgvComponente.Rows[i].Cells[2].Value = item.UnidadMedida;
               dgvComponente.Rows[i].Cells[3].Value = item.ValorDefault;
                i++;
            }
        }
ayuda por favor!!!