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

problema datagridview al grabar datos en windows form vb.net 2005

Estas en el tema de problema datagridview al grabar datos en windows form vb.net 2005 en el foro de .NET en Foros del Web. hola genios de la informatica, les queria hacer una consulta ya que quiero grabar unos datos desde un datagridview a una base de datos sql ...
  #1 (permalink)  
Antiguo 02/04/2011, 23:02
Avatar de luisito1  
Fecha de Ingreso: junio-2009
Ubicación: Córdoba
Mensajes: 226
Antigüedad: 15 años, 5 meses
Puntos: 2
problema datagridview al grabar datos en windows form vb.net 2005

hola genios de la informatica, les queria hacer una consulta ya que quiero grabar unos datos desde un datagridview a una base de datos sql server... el problema nace ya que se estaba probando posibles errores hay dos casos puntuales en el que no me deja seguir el recorrido de la grilla.. primero cuando tengo un dato repetido no me lo deja grabar y me acusa que ya existe, pero despues de ese problema no me deja grabar las demas filas aunq este bien... y otro caso es cuando tengo datos columnas en blanco tambie me marca el error pero no me toma las filas siguientes... seguramente estoy cometiendo un error pero no se lo encuentro y me esta poniendo loco, como ustedes seguro saben mucho mas que yo les agradeceria que me ayuden a encontrarlo, les dejo la foto del form y el codigo.. desde ya muchisimas gracias y disculpen la molestia










Código vb.net:
Ver original
  1. Private Sub Bgrabar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Bgrabar.Click
  2.         Dim horario As String ' va a llevar la hora de la grilla para buscar su id
  3.         Dim turno As String ' va a llevar el turno de la grilla para buscar su id
  4.         Dim dia As String ' va a llevar el dia de la grilla para buscar su id
  5.         Dim curso As String ' va a llevar el curso de la grilla para buscar su id
  6.         Dim fila As Integer ' va a contar la cantidad de filas grabadas
  7.         Dim valor As Integer = 0 ' va verificar que la grilla no este vacia
  8.         Dim ubicacion As Integer ' va a contar la cantidad de filas totales que tiene la grilla
  9.         Dim ghorario As Integer ' va a llevar la id de la hora para grabar
  10.         Dim gturno As Integer ' va a llevar la id del turno para grabar
  11.         Dim gdia As Integer ' va a llevar la id del dia para grabar
  12.         Dim gcurso As String ' va a llevar la id del curso para grabar
  13.      
  14.         ' VERIFICARA QUE REALMENTE DESEE GUARDAR LOS DATOS
  15.         If MessageBox.Show("Esta seguro que quiere grabar estos datos", "Advertencia", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) = Windows.Forms.DialogResult.Yes Then
  16.             Try
  17.                 If grilla.Rows.Count > 0 Then ' verifica que exitan datos en la fila
  18.                     For i As Integer = 0 To grilla.Rows.Count - 1 ' deciende desde la primera fila hasta el ultimo cargado
  19.  
  20.                         ' verifica por fila que en las fila esten cargados todos los datos
  21.                         If Me.grilla.Item(Column3.Index, i).Value <> Nothing And Me.grilla.Item(Column1.Index, i).Value <> Nothing And Me.grilla.Item(Column2.Index, i).Value <> Nothing And Me.grilla.Item(Column4.Index, i).Value <> Nothing Then
  22.                             horario = Me.grilla.Item(Column3.Index, i).Value
  23.                             dia = Me.grilla.Item(Column1.Index, i).Value '
  24.                             turno = Me.grilla.Item(Column2.Index, i).Value
  25.                             curso = Me.grilla.Item(Column4.Index, i).Value
  26.                             ubicacion = ubicacion + 1
  27.                             dsohorariodocente = objpersonal.obtenerhorariodocente(horario, dia, turno, curso) ' envia los string para devolver los id
  28.                             Try                            
  29.                                 For Each x As DataRow In dsohorariodocente.Tables("ohorariodocente").Rows
  30.                                     ghorario = x.ItemArray(2)
  31.                                     gdia = x.ItemArray(3)
  32.                                     gturno = x.ItemArray(1)
  33.                                     gcurso = x.ItemArray(0)
  34.  
  35.                                     objpersonal.cargarhorariosprofesor(leg, ghorario, gdia, gturno, gcurso) ' graba los que estan bien
  36.                                     fila = fila + 1
  37.                                     valor = 1
  38.                                     MessageBox.Show("La fila " & ubicacion & " grabada", "Error")
  39.                                 Next
  40.                             Catch ex As Exception
  41.                                 MessageBox.Show("Los datos de fila " & ubicacion & " ya fueron grabadas con anterioridad para este personal", "Error")
  42.                             End Try
  43.                         Else
  44.                             ubicacion = ubicacion + 1
  45.                             MessageBox.Show("La fila " & ubicacion & " no tiene todos los datos cargados, por lo cual a partir de esta no se grabaran los datos", "Error")
  46.                         End If
  47.                         dsohorariodocente.Tables.Clear()
  48.                     Next
  49.                     If valor = 1 Then
  50.                         MessageBox.Show("Total de Filas correctamente grabadas: " & fila, " Informacion", MessageBoxButtons.OK, MessageBoxIcon.Information)
  51.                     End If
  52.                 Else
  53.                     MessageBox.Show("La grilla debe tener algun valor", "Error", MessageBoxButtons.OK)
  54.                 End If
  55.  
  56.             Catch ex As Exception
  57.                 MessageBox.Show("Hubo un error en la grabacion de datos, por favor intente nuevamente", "Error", MessageBoxButtons.OK)
  58.             End Try
  59.         End If
  60.     End Sub
  #2 (permalink)  
Antiguo 04/04/2011, 08:20
 
Fecha de Ingreso: marzo-2008
Mensajes: 286
Antigüedad: 16 años, 8 meses
Puntos: 1
Respuesta: problema datagridview al grabar datos en windows form vb.net 2005

no se si te pase, pero capaz te da un error, que al no editar un campo puede que se haya quedado en nulo y al querer igualar en nulo a string puede que se caiga, prueba colocando al final
value.tostring
si ese era tu error.
  #3 (permalink)  
Antiguo 04/04/2011, 08:41
Avatar de Aquaventus  
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 14 años, 4 meses
Puntos: 267
Respuesta: problema datagridview al grabar datos en windows form vb.net 2005

concuerdo con roger1187 siempre verifica si el campo es nulo o vacio para que puedas guardar en tu bd. Saludos!
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #4 (permalink)  
Antiguo 04/04/2011, 14:46
Avatar de luisito1  
Fecha de Ingreso: junio-2009
Ubicación: Córdoba
Mensajes: 226
Antigüedad: 15 años, 5 meses
Puntos: 2
Respuesta: problema datagridview al grabar datos en windows form vb.net 2005

Muchisimas gracias amigasos.. pero sigue con el mismo problema lo que voy a intentar es en el listar hacer las consultas tanto de elementos null como de elementos repetidos asi los que queda en la grilla se graban sin problemas :D muchisimas gracias de nuevo
  #5 (permalink)  
Antiguo 03/11/2011, 19:13
 
Fecha de Ingreso: agosto-2007
Ubicación: Lima
Mensajes: 8
Antigüedad: 17 años, 3 meses
Puntos: 1
Respuesta: problema datagridview al grabar datos en windows form vb.net 2005

cheka en tu bd sql primero si en los campos donde intentas insertar acepten valores nulos, si aun los datos son correctos verifica si hay restricciones check, si al intentar insertar un registri las llaves primarias pueden estar repetidas. tu codigo puede estar OK pero fuera de errores de sintaxis tambien hay errores de logica. suerte...

Etiquetas: datagridview, gente
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 10:30.