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

problema para llenar un datagridview

Estas en el tema de problema para llenar un datagridview en el foro de .NET en Foros del Web. Hola, tengo un problema.. Necesito llenar una grilla con los valores de una consulta tengo este codigo: gProvincia.DataSource = ClassLibrary1.Transacciones.FindAll("select idProvincia, Nombre from Provincia"); pero ...
  #1 (permalink)  
Antiguo 11/03/2010, 08:30
 
Fecha de Ingreso: marzo-2010
Mensajes: 13
Antigüedad: 14 años, 1 mes
Puntos: 0
problema para llenar un datagridview

Hola, tengo un problema..
Necesito llenar una grilla con los valores de una consulta

tengo este codigo:

gProvincia.DataSource = ClassLibrary1.Transacciones.FindAll("select idProvincia, Nombre from Provincia");

pero no entiendo si esto esta bien, si luego tengo q poner un DataMember o que cosa

Alguien que la tenga clara ?
Gracias !!!!
  #2 (permalink)  
Antiguo 11/03/2010, 09:41
Avatar de erick_arcini  
Fecha de Ingreso: julio-2005
Ubicación: Jaltenco / DF
Mensajes: 1.723
Antigüedad: 18 años, 9 meses
Puntos: 50
Respuesta: problema para llenar un datagridview

Si tu función "FindAll" devuelve un DataSet especifica el DataTable que tiene que devolver, en tu caso el de índice "0":

Código:
gProvincia.DataSource = ClassLibrary1.Transacciones.FindAll("select idProvincia, Nombre from Provincia").Tables[0];
__________________
Mejoremos nuestro país, ayudemos al planeta... próximamente.
  #3 (permalink)  
Antiguo 11/03/2010, 11:17
 
Fecha de Ingreso: marzo-2010
Mensajes: 13
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: problema para llenar un datagridview

Mi funcion FindAlla es del tipo DataTable:

public static DataTable FindAll(string sql)
{
AccesoBD bd = new AccesoBD();
bd.Conectar();
bd.EstablecerComando(sql);
DataTable dt = bd.ObtenerDataTable();
bd.Desconectar();
return dt;
}

no me permite hacer lo que propones.. debo usar el metodo DataMember?
No conozco mucho de esto ..
  #4 (permalink)  
Antiguo 11/03/2010, 11:22
Avatar de erick_arcini  
Fecha de Ingreso: julio-2005
Ubicación: Jaltenco / DF
Mensajes: 1.723
Antigüedad: 18 años, 9 meses
Puntos: 50
Respuesta: problema para llenar un datagridview

Pues no, te debería dejar con el simple DataTable, tu DataGridView lo estas inicializando con columnas?, de ser así, quitalas por que puede que este fallando desde allí, sino prueba realizando tu consulta por fuera, es decir utilizando las clases del framework directamente.

Un pregunta mas, cuando acabas el proceso te manda un error o simplemente no hace nada?
__________________
Mejoremos nuestro país, ayudemos al planeta... próximamente.
  #5 (permalink)  
Antiguo 11/03/2010, 11:35
 
Fecha de Ingreso: marzo-2010
Mensajes: 13
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: problema para llenar un datagridview

Mira, ahora hice esto: quite las columnas, ya que antes las tenia. Deje la grilla vacia y la llene con esto:

gProvincia.DataSource = ClassLibrary1.Transacciones.FindAll("select idProvincia as Código, Nombre as Provincia from Provincia");

Ahora se me agregaron las columnas. Tengo mis 2 columnas, mostrando los codigos y nombres. He solucionado eso.

Pero surge otra duda: necesito que al momento de hacer click o seleccionar con el teclado una fila (por ej: 1 - Buenos Aires) se me llene la segunda grilla con las ciudades de Buenos Aires. Tendria que hacer una consulta de las ciudades donde el idProvincia sea 1.

Podes darme una mano con esto? Muchas gracias !
  #6 (permalink)  
Antiguo 11/03/2010, 11:54
Avatar de erick_arcini  
Fecha de Ingreso: julio-2005
Ubicación: Jaltenco / DF
Mensajes: 1.723
Antigüedad: 18 años, 9 meses
Puntos: 50
Respuesta: problema para llenar un datagridview

Para obtener tu idProvincia podrías hacer esto:


TuDG[TuDG.CurrentCell.ColumnIndex, TuDG.CurrentCell.RowIndex].Value.ToString()

Donde:

TuDG.CurrentCell.ColumnIndex << sería la columna en cuestión que tiene el idProvincia

TuDG.CurrentCell.RowIndex << La fila actualmente seleccionada


En caso de que tu idProvincia se encuentre en la primer columna te quedaría algo así:

Código:
int id = Convert.ToInt32(TuDG[0, TuDG.CurrentCell.RowIndex].Value.ToString());
__________________
Mejoremos nuestro país, ayudemos al planeta... próximamente.
  #7 (permalink)  
Antiguo 12/03/2010, 09:26
 
Fecha de Ingreso: febrero-2010
Ubicación: México
Mensajes: 738
Antigüedad: 14 años, 1 mes
Puntos: 37
Respuesta: problema para llenar un datagridview

Hola rlavisse

Yo utilizo el siguiente método sub y me funciona a la perfección:

Código vb:
Ver original
  1. Public Sub Cargar_DatagridView(ByVal Instruccion_Sql, ByVal dgv, ByVal dataset, ByVal tabla)
  2.  
  3.         'Asigno a mi objeto SqlConnection mi cadena de conexión
  4.        objConn = New SqlConnection(miconexion.StrConexion)
  5.  
  6.         'Reseteo el Dataset para no mostrar repetidos
  7.        dataset.Clear()
  8.         Try
  9.             ' Abro la conexión
  10.            objConn.Open()
  11.            
  12.             'Declaro una variable String que contendra la cadena de mi consulta a ejecutar
  13.            Dim sql As String = Instruccion_Sql
  14.  
  15.             'Declaro una variable tipo SqlCommand
  16.            Dim cmd As New SqlCommand(sql, objConn)
  17.  
  18.             'Color alternado de celdas
  19.            With dgv
  20.                 .RowsDefaultCellStyle.BackColor = Color.White
  21.                 .AlternatingRowsDefaultCellStyle.BackColor = Color.AliceBlue
  22.             End With
  23.  
  24.             'Creo un SqlDataAdapter y le mando mi cadena y conexión
  25.            adaptador = New SqlDataAdapter(sql, objConn)
  26.            
  27.             'Lleno mi dataset
  28.            adaptador.Fill(dataset, tabla)
  29.             dgv.DataSource = dataset.Tables(tabla)
  30.  
  31.             'ejecuto mi consulta
  32.            cmd.ExecuteNonQuery()
  33.             cmd.Dispose()
  34.            
  35.            'Cierro la conexión
  36.            objConn.Close()
  37.  
  38.         Catch ex As Exception
  39.             MsgBox(ex.Message, MsgBoxStyle.Critical, "Error")
  40.             objConn.Close()
  41.         End Try
  42.  
  43.     End Sub

Espero y te sirva, cualquier duda la comentas... Saludos

Última edición por Ka0stj; 12/03/2010 a las 10:17
  #8 (permalink)  
Antiguo 12/03/2010, 11:37
 
Fecha de Ingreso: marzo-2010
Mensajes: 13
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: problema para llenar un datagridview

Gracias por las respuestas ..
Estuve investigando un poco y llegue a este desarrollo:

gLocalidades.DataSource = ClassLibrary1.Transacciones.FindAll("select L.idLocalidad as Código, L.Nombre as Localidad, P.Nombre as Provincia " +
From Localidad L, Provincia P Where L.idProvincia = P.idProvincia and " +
P.idProvincia = @campo ", gProvincia.Rows[e.RowIndex].Cells[0].Value.ToString());

Hasta ahora, anduvo 10 puntos !!!

Etiquetas: datagridview, llenar
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 05:13.