Ver Mensaje Individual
  #1 (permalink)  
Antiguo 02/04/2011, 23:02
Avatar de luisito1
luisito1
 
Fecha de Ingreso: junio-2009
Ubicación: Córdoba
Mensajes: 226
Antigüedad: 14 años, 11 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