Foros del Web » Programación para mayores de 30 ;) » .NET »

problema al reportar en datagrid

Estas en el tema de problema al reportar en datagrid en el foro de .NET en Foros del Web. hola a todos, miren tengo este codigo: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código C# - Form: Ver original dg_Cliente.DataSource = clienteD.Instancia.ListarClientes();               ...
  #1 (permalink)  
Antiguo 13/08/2009, 20:57
 
Fecha de Ingreso: febrero-2008
Mensajes: 54
Antigüedad: 16 años, 2 meses
Puntos: 0
Pregunta problema al reportar en datagrid

hola a todos, miren tengo este codigo:
Código C# - Form:
Ver original
  1. dg_Cliente.DataSource = clienteD.Instancia.ListarClientes();
  2.            
  3.             dg_Cliente.TableStyles[0].GridColumnStyles[0].Width = 0;//codigo
  4.             dg_Cliente.TableStyles[0].GridColumnStyles[1].Width = 0;//nombre
  5.             dg_Cliente.TableStyles[0].GridColumnStyles[2].Width = 0;//apellido
  6.             dg_Cliente.TableStyles[0].GridColumnStyles[3].Width = 50;//tipo
  7.             dg_Cliente.TableStyles[0].GridColumnStyles[4].Width = 120;//identificacion
  8.             dg_Cliente.TableStyles[0].GridColumnStyles[5].Width = 160;//nombrecliente
  9.             dg_Cliente.TableStyles[0].GridColumnStyles[6].Width = 160;//direccion
  10.             dg_Cliente.TableStyles[0].GridColumnStyles[7].Width = 80;//telefono
  11.             dg_Cliente.TableStyles[0].GridColumnStyles[8].Width = 100;//distrito
  12.  
  13.             dg_Cliente.TableStyles[0].GridColumnStyles[0].HeaderText = "Codigo";
  14.             dg_Cliente.TableStyles[0].GridColumnStyles[1].HeaderText = "Nombre";
  15.             dg_Cliente.TableStyles[0].GridColumnStyles[2].HeaderText = "Apellido";
  16.             dg_Cliente.TableStyles[0].GridColumnStyles[3].HeaderText = "Tipo";
  17.             dg_Cliente.TableStyles[0].GridColumnStyles[4].HeaderText = "Identificacion";
  18.             dg_Cliente.TableStyles[0].GridColumnStyles[5].HeaderText = "Nombre Cliente";
  19.             dg_Cliente.TableStyles[0].GridColumnStyles[6].HeaderText = "Direccion";
  20.             dg_Cliente.TableStyles[0].GridColumnStyles[7].HeaderText = "Telefono";
  21.             dg_Cliente.TableStyles[0].GridColumnStyles[8].HeaderText = "Distrito";*/

Bueno de seguro quieren ver q hay en la clase ClienteD exactamente en ListarClientes()

Código C# - Clase:
Ver original
  1. public List<clienteE> ListarClientes()
  2.         {
  3.             SqlConnection conexion = new SqlConnection(conexionD.Instancia.Cadenaconexion());
  4.             try
  5.             {  
  6.                 conexion.Open();              
  7.                 SqlCommand consultasql = new SqlCommand("procCliente", conexion);
  8.                 //Especificamos que le estamos un parametro del tipo SP
  9.                 consultasql.CommandType = System.Data.CommandType.StoredProcedure;
  10.  
  11.                 //la operacion que queramos  //dentro del SP  //1=Select
  12.                 consultasql.Parameters.Add("[arroba]Tipoconsulta", System.Data.SqlDbType.TinyInt).Value = 1;
  13.                 SqlDataReader Reader = consultasql.ExecuteReader();
  14.                 List<clienteE> Coleccion = new List<clienteE>();
  15.                 while (Reader.Read())
  16.                 {
  17.                     Coleccion.Add(new clienteE(Reader.GetString(0), Reader.GetString(1), Reader.GetString(2), Reader.GetString(3), Reader.GetString(4), Reader.GetString(5), Reader.GetString(6), Reader.GetString(7), Reader.GetString(8)));
  18.                 }
  19.                 return Coleccion;
  20.             }
  21.             catch (Exception ex)
  22.             {
  23.                 throw new Exception(ex.Message);
  24.             }
  25.             finally
  26.             {
  27.                 conexion.Close();
  28.                 conexion.Dispose();
  29.             }
  30.         }

Bueno el error q me sale es: "El índice estaba fuera del intervalo. Debe ser un valor no negativo e inferior al tamaño de la colección.
Nombre del parámetro: index"

ehhh alguna ayudadita me vendria muy bien muchachos, gracias de antemano...

Salu2...
  #2 (permalink)  
Antiguo 28/08/2009, 06:17
 
Fecha de Ingreso: junio-2008
Ubicación: Valencia
Mensajes: 152
Antigüedad: 15 años, 10 meses
Puntos: 3
Respuesta: problema al reportar en datagrid

¿Puedes poner la sentencia Select ?
YO programo en .net, no tengo del todo claro tu código ,pero ¿que es "procCliente" ? ¿No tendria que ser la sentencia select?
  #3 (permalink)  
Antiguo 28/08/2009, 08:07
Avatar de Dradi7  
Fecha de Ingreso: junio-2008
Ubicación: Peru - Lima
Mensajes: 1.518
Antigüedad: 15 años, 10 meses
Puntos: 220
Respuesta: problema al reportar en datagrid

bueno como se dice el mensaje puede estar en lo que te devuelve la sentencia select de repente la cantidad de campos del select no son igual al la cantidad de campos que utilizas en tu codigo.
__________________
La clave de todo triunfador es eliminar todas sus excusas y sus limitaciones
  #4 (permalink)  
Antiguo 28/08/2009, 09:00
 
Fecha de Ingreso: enero-2007
Ubicación: Tingo María - Perú
Mensajes: 399
Antigüedad: 17 años, 3 meses
Puntos: 13
Respuesta: problema al reportar en datagrid

Concuerdo con Dradi7, verifica que tu procedimiento almacenado devuelva el numero de columnas adecuadas, tambien cabe mencionar que seria buena practica de programacion usar los nombres de las columnas en vez de su ubicacion por ejemplo:
seria mejor usar

Código:
 
 
Reader.GetString("Nombre_De_Columna"),
que

Código:
 
 
Reader.GetString(0),
__________________
Vivir para ser buenos y ser buenos para servir mejor.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:16.