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

Problema con Datagrid al llegar al final de los registros sigue buscando.

Estas en el tema de Problema con Datagrid al llegar al final de los registros sigue buscando. en el foro de .NET en Foros del Web. Hola amigos tengo un problema con una parte del codigo de un software que estoy modificando, toma los valores de una base de datos de ...
  #1 (permalink)  
Antiguo 21/04/2015, 14:47
Avatar de agustin_09  
Fecha de Ingreso: mayo-2009
Mensajes: 31
Antigüedad: 14 años, 11 meses
Puntos: 1
Problema con Datagrid al llegar al final de los registros sigue buscando.

Hola amigos tengo un problema con una parte del codigo de un software que estoy modificando, toma los valores de una base de datos de access y necesito hacer una comprobación de esa información y pasarlo a un datagridview que se llama timepicker, el tema es que cuando llega al final del registro busca dos veces ese ultimo registro si tiene mas registros abajo no hay problemas el inconveniente surge cuando el registro a verificar es justo el ultimo... que puede estar pasando?


TimePicker.Rows.Clear()
TBindingSource.MoveFirst()
FechaActual = e.Days.FirstOrDefault

Dim rs4 As DataRow
For Each rs4 In DataSet.t

If CodigoM2.Text <> CodigoM.Text Then TBindingSource.MoveNext()
If txtFechaT.Text <> FechaActual Then TBindingSource.MoveNext()

If txtFechaTurno.Text = FechaActual Then
HoraT = txtHoraT.Text
HoraT = FormatDateTime(txtHoraT.Text, DateFormat.ShortTime)
TimePicker.Rows.Add(HoraT)
TBindingSource.MoveNext()
End If
Next

Última edición por agustin_09; 21/04/2015 a las 14:54
  #2 (permalink)  
Antiguo 21/04/2015, 14:57
Avatar de agustin_09  
Fecha de Ingreso: mayo-2009
Mensajes: 31
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: Problema con Datagrid al llegar al final de los registros sigue buscando.

Es como si no se diera cuenta que esta en el final y siga uno mas y recien ahi se detenga...
  #3 (permalink)  
Antiguo 21/04/2015, 15:03
(Desactivado)
 
Fecha de Ingreso: enero-2015
Mensajes: 393
Antigüedad: 9 años, 3 meses
Puntos: 52
Respuesta: Problema con Datagrid al llegar al final de los registros sigue buscando.

Emm... tu código tiene muy poco sentido.

Que es TBindingSource?
Para que estas iterando el dataset si no estas haciendo nada con sus items?
Para que estas asignando dos veces HoraT?
El if txtFechaTurno no tiene absolutamente ningun sentido. De donde sale txtFechaTurno.Text?

Te sugiero (nuevamente) que borres todo ese codigo y empieces leyendo acerca de las cuestiones basicas de OOP antes de tratar de programar en .Net.

La forma correcta de hacer lo que sea que estás queriendo hacer es con LINQ, pero para eso necesitas primero saber lo básico.

De lo contrario te recomendaría que busques a un programador calificado para hacer el trabajo.
  #4 (permalink)  
Antiguo 21/04/2015, 15:18
Avatar de agustin_09  
Fecha de Ingreso: mayo-2009
Mensajes: 31
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: Problema con Datagrid al llegar al final de los registros sigue buscando.

txtFechaTurno.Text es txtFechaT.Text me equivoque al copiar el codigo, TBindingSource lo crea automaticamente VB.Net y lo estoy usando para moverme por los registros de la tabla.

Gracias por no responder mi pregunta, me pregunto porque no tratar de ayudar y preguntar de forma cordial en lugar de decirme cada vez que busque un programador calificado en lugar de hacerlo yo, quiero hacerlo yo y punto solo necesito ayuda en esta pregunta, estoy modificando un software y esta funcionando todo lo que hago no se porque te crees que no se programar que no lo haga como penas no quiere decir que este mal.

La pregunta es clara porque al llegar al final de los registros encuentra uno mas cuando no lo hay, ademas agregue que si hay un registro abajo el problema no surge por lo que mi codigo funciona asi que por lo que ves no estoy improvisando.

Gracias.
  #5 (permalink)  
Antiguo 21/04/2015, 15:23
(Desactivado)
 
Fecha de Ingreso: enero-2015
Mensajes: 393
Antigüedad: 9 años, 3 meses
Puntos: 52
Respuesta: Problema con Datagrid al llegar al final de los registros sigue buscando.

Capo, tu codigo no tiene ningun sentido. Nadie puede ayudarte si no entendes lo mas fundamental de la programacion que es asignar variables.

Tu codigo utiliza campos de texto que no se asignan en ningun momento, itera por registros que nunca usa y tiene condicionales que no hay chance de que se cumplan, al menos con el codigo que posteaste.

Sin mencionar que no necesitas "iterar" y hacer ningun if sino tirar una query de LINQ y listo.

No puedo responder tu pregunta porque no tengo idea de lo que estas tratando de hacer ya que tu codigo no tiene absoluamente ningun sentido.
  #6 (permalink)  
Antiguo 21/04/2015, 15:28
Avatar de agustin_09  
Fecha de Ingreso: mayo-2009
Mensajes: 31
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: Problema con Datagrid al llegar al final de los registros sigue buscando.

Como me podes decir eso si el programa es funcionando y hace exactamente lo que necesito como veo ni leiste que puse el control que citaste y si te parece que esta mal que use el dataset si pongo:

Dim rs4 As DataRowView
For Each rs4 In TBindingSource

...

Next rs5

Es el mismo problema.. y asi y todo funciona, como ve no es una sola la forma de hacer las cosas y el software funciona.
  #7 (permalink)  
Antiguo 21/04/2015, 15:29
Avatar de agustin_09  
Fecha de Ingreso: mayo-2009
Mensajes: 31
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: Problema con Datagrid al llegar al final de los registros sigue buscando.

Donde asigne mal la variable?

en una linea le doy el contenido y en la otra le aplico formato.
  #8 (permalink)  
Antiguo 21/04/2015, 15:35
(Desactivado)
 
Fecha de Ingreso: enero-2015
Mensajes: 393
Antigüedad: 9 años, 3 meses
Puntos: 52
Respuesta: Problema con Datagrid al llegar al final de los registros sigue buscando.

Cita:
Iniciado por agustin_09 Ver Mensaje
como ve no es una sola la forma de hacer las cosas
No, claro que no.

Está la forma profesional, que sería separar adecuadamente las capas, en lugar de meter todo en code behind y rezar para que funcione, y usar LINQ en lugar de un monton de foreach horribles.

También está la forma que lo estás haciendo ahora.

Por cierto, la clase System.Windows.Forms.BindingSource implementa IEnumerable, deberias iterar eso en lugar de otra collection que no estas usando para nada.
  #9 (permalink)  
Antiguo 21/04/2015, 15:36
Avatar de agustin_09  
Fecha de Ingreso: mayo-2009
Mensajes: 31
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: Problema con Datagrid al llegar al final de los registros sigue buscando.

TimePicker.Rows.Clear() // Borra las fila cargadas anteriormente
TBindingSource.MoveFirst() // Se mueve al principio de la tabla
FechaActual = e.Days.FirstOrDefault // Toma la variable de un calendario

Dim rs4 As DataRow
For Each rs4 In DataSet.t

If CodigoM2.Text <> CodigoM.Text Then TBindingSource.MoveNext() // Si no coincide el codigo de la presona con el de la fila activa sigue al prox. regitro
If txtFechaT.Text <> FechaActual Then TBindingSource.MoveNext() // Si la fecha de la fila activa es disntinta d la de la variable sigue al prox registro .

If txtFechaTurno.Text = FechaActual Then //s i coincide entra al IF
HoraT = txtHoraT.Text // HoraT toma la variable de la fila activa
HoraT = FormatDateTime(txtHoraT.Text, DateFormat.ShortTime) // Le da formato de fecha corta
TimePicker.Rows.Add(HoraT) // agrega la variable HoraT a un datagrid en uan nueva fila
TBindingSource.MoveNext() // se mueve al prox. registro
End If
Next

No es tan dificil de enter si preguntas de que e trata...

Última edición por agustin_09; 21/04/2015 a las 15:42
  #10 (permalink)  
Antiguo 21/04/2015, 15:51
Avatar de agustin_09  
Fecha de Ingreso: mayo-2009
Mensajes: 31
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: Problema con Datagrid al llegar al final de los registros sigue buscando.

Cita:
Iniciado por agleiva Ver Mensaje
También está la forma que lo estás haciendo ahora..
Gracias, y te repito que no lo arme yo sino que estoy modificando un programa que ya esta montando y hacerlo de cero no es mi intencion por lo que me tengo que apegar a lo que ya esta, no se porque supone que jamas programe en mi vida, y tal como veras tu comentarios mas que agredir no me ayudan en nada ni me solucionan el problema asi que si no sabes porque me sucede el error te sugiero que no me respondas mas en mis psoteos i no sabe la respueta a lo que pregunto.
  #11 (permalink)  
Antiguo 21/04/2015, 15:51
(Desactivado)
 
Fecha de Ingreso: enero-2015
Mensajes: 393
Antigüedad: 9 años, 3 meses
Puntos: 52
Respuesta: Problema con Datagrid al llegar al final de los registros sigue buscando.

Cita:
Iniciado por agustin_09 Ver Mensaje
No es tan dificil de enter si preguntas de que e trata...
Claro, el tema es que estas usando una tecnica tan horrible y vomitiva que ni se me podía llegar a pasar por la cabeza.

Estas usando un BindingSource (de winforms) para bindear los elementos de la pantalla con los datos, luego de eso estas haciendo que el Binding Source muestre los registros en la pantalla de a uno, y en lugar de comparar o trabajar con los datos reales estas trabajando con las properties de la UI.

Data -> BindingSource -> UI -> Tu logica.

La forma correcta de trabajar es:

Data -> Tu Logica.

Otra vez te repito, no tengo idea de cual es la logica que queres implementar, pero olvidate del BindingSource y de "fijarte" si los elementos de la pantalla tienen tal o cual property.

La logica de tu aplicacion debe operar sobre los datos y no sobre los controles de la pantalla.

Etiquetas: datagrid, datagridview, final, registros, sigue
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 19:16.