elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: AIO elhacker.NET 2021 Compilación herramientas análisis y desinfección malware


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  como mostrar todas las columnas AUN con valores null
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: como mostrar todas las columnas AUN con valores null  (Leído 2,268 veces)
irvincnt93

Desconectado Desconectado

Mensajes: 14


Ver Perfil
como mostrar todas las columnas AUN con valores null
« en: 20 Agosto 2015, 00:01 am »

hola familia tengo un problema al momento de mostrar una tabla de mi base de datos en un datagridview en C#. les especifico un poco mejor.

tengo una tabla con nombre Actas.
-----------------------------------------------------------------------------
  id_acta | id_dpto | id_mate | ...... | grupo | clave | folio | ruta |
-----------------------------------------------------------------------------

todas las columnas deben de tener datos (not null) pero la de clave y folio, algunos campos puede que tengan o no tengas (null).

ahora tengo en mi aplicación en C# una clase que me carga la tabla Actas, si en mi tabla tengo filas que no tiene celdas nulas si me muestra todo como debe de ser, pero al momento de agregar una fila con la celda en clave y folio nulo (null) al momento de darle clic en mostrar actas, me genera un error que dice:

Citar
An unhandled exception of type 'System.IndexOutOfRangeException' occurred in System.Data.dll

Additional information: clave


les muestro la clase que carga todas mis Actas

Código:

public void cargarActas(String Filtro)
        {
            SqlDataReader dr;
            string cadenaconexion = @"Data Source=IRONGIO-PC;Initial Catalog=itiz;Integrated Security=True";
            SqlConnection conexion = new SqlConnection();
            SqlCommand comando = new SqlCommand();

            conexion.ConnectionString = cadenaconexion;
            comando.Connection = conexion;
            comando.CommandText = "select idacta, PE.nombrePeriodo, DE.nombreDpto, MA.nombreMateria, PR.nombreProfesor, TS.nombreTipoSemestre, grupo, clave, folio, ruta" +
                                   " from Actas A join Periodos PE on A.idperi = PE.idperi" +
                                   " join Departamentos DE on A.iddpto = DE.iddpto" +
                                   " join Materias MA on A.idmate = MA.idmate" +
                                   " join Profesores PR on A.idprofe = PR.idprofe" +
                                   " join TipoSemestre TS on A.idtiposem = TS.idtiposem WHERE 1=1 " + Filtro;

            comando.CommandType = CommandType.Text;
            conexion.Open();
            dgvActas.Rows.Clear();
            dr = comando.ExecuteReader();


            while (dr.Read())
            {
                int renglon = dgvActas.Rows.Add();
                dgvActas.Rows[renglon].Cells["id_acta"].Value = dr.GetInt32(dr.GetOrdinal("idacta")).ToString();
                dgvActas.Rows[renglon].Cells["id_peri"].Value = dr.GetString(dr.GetOrdinal("nombrePeriodo"));
                dgvActas.Rows[renglon].Cells["id_dpto"].Value = dr.GetString(dr.GetOrdinal("nombreDpto"));
                dgvActas.Rows[renglon].Cells["id_mate"].Value = dr.GetString(dr.GetOrdinal("nombreMateria"));
                dgvActas.Rows[renglon].Cells["id_profe"].Value = dr.GetString(dr.GetOrdinal("nombreProfesor"));
                dgvActas.Rows[renglon].Cells["id_tiposem"].Value = dr.GetString(dr.GetOrdinal("nombreTipoSemestre"));
                dgvActas.Rows[renglon].Cells["grupo"].Value = dr.GetString(dr.GetOrdinal("grupo"));
                dgvActas.Rows[renglon].Cells["clave"].Value = dr.GetString(dr.GetOrdinal("clave"));
                dgvActas.Rows[renglon].Cells["folio"].Value = dr.GetString(dr.GetOrdinal("folio"));
                dgvActas.Rows[renglon].Cells["ruta"].Value = dr.GetString(dr.GetOrdinal("ruta"));
            }


            conexion.Close();
        }

buscando como arreglar el error encontré  que los valores nulos tengo que sustituilos por otra palabra para poder mostrarlos, lo que intente fue poner esta sentencia selec:

Código:
comando.CommandText = "select idacta, PE.nombrePeriodo, DE.nombreDpto, MA.nombreMateria, PR.nombreProfesor, TS.nombreTipoSemestre, grupo, ISNULL(clave,'vacio'), ISNULL(folio,'vacio'), ruta" +
                                   " from Actas A join Periodos PE on A.idperi = PE.idperi" +
                                   " join Departamentos DE on A.iddpto = DE.iddpto" +
                                   " join Materias MA on A.idmate = MA.idmate" +
                                   " join Profesores PR on A.idprofe = PR.idprofe" +
                                   " join TipoSemestre TS on A.idtiposem = TS.idtiposem WHERE 1=1 " + Filtro;

así como lo tengo en esta sentencia si me voy al gestor de BD y ejecuto esta sentencia, me salen todos los datos como los quiero, pero al momento de ponerlo en el código me genera el comentario del error que les puse arriba.

entonces pienso que el error esta aqui pero no se como arreglarlo

Código:
dgvActas.Rows[renglon].Cells["clave"].Value = dr.GetString(dr.GetOrdinal("clave"));
dgvActas.Rows[renglon].Cells["folio"].Value = dr.GetString(dr.GetOrdinal("folio"));


En línea

berni69


Desconectado Desconectado

Mensajes: 798


Sapere aude!!


Ver Perfil WWW
Re: como mostrar todas las columnas AUN con valores null
« Respuesta #1 en: 20 Agosto 2015, 16:32 pm »

antes de hacer el GetString compara con null y con dbnull (ahora no recuerdo el tipo que devolvia el dr)


En línea

Errar es humano, pero para liar las cosas de verdad se necesita un ordenador

Tutorial Swifi keygen + Airwin 2.0
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Cómo mostrar resultados en columnas
PHP
Fireball-CH 6 6,002 Último mensaje 31 Julio 2007, 03:03 am
por Fireball-CH
¿Cómo evito mostrar columnas repetidas?
Bases de Datos
DanteInfernum 9 5,392 Último mensaje 1 Octubre 2013, 18:20 pm
por DanteInfernum
Comprobar valores columnas Visual Basic
Programación Visual Basic
maral 2 3,533 Último mensaje 22 Abril 2016, 07:42 am
por maral
Porque esta consulta, me devuelve valores null ??? [SOLUCIONADO]
PHP
Razzari 4 2,696 Último mensaje 24 Febrero 2017, 02:46 am
por danny920825
Valores de atributos del objeto en null
Java
Beginner Web 1 1,818 Último mensaje 13 Abril 2019, 17:02 pm
por Beginner Web
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines