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 originalPrivate Sub Bgrabar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Bgrabar.Click
Dim horario As String ' va a llevar la hora de la grilla para buscar su id
Dim turno As String ' va a llevar el turno de la grilla para buscar su id
Dim dia As String ' va a llevar el dia de la grilla para buscar su id
Dim curso As String ' va a llevar el curso de la grilla para buscar su id
Dim fila As Integer ' va a contar la cantidad de filas grabadas
Dim valor As Integer = 0 ' va verificar que la grilla no este vacia
Dim ubicacion As Integer ' va a contar la cantidad de filas totales que tiene la grilla
Dim ghorario As Integer ' va a llevar la id de la hora para grabar
Dim gturno As Integer ' va a llevar la id del turno para grabar
Dim gdia As Integer ' va a llevar la id del dia para grabar
Dim gcurso As String ' va a llevar la id del curso para grabar
' VERIFICARA QUE REALMENTE DESEE GUARDAR LOS DATOS
If MessageBox.Show("Esta seguro que quiere grabar estos datos", "Advertencia", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) = Windows.Forms.DialogResult.Yes Then
Try
If grilla.Rows.Count > 0 Then ' verifica que exitan datos en la fila
For i As Integer = 0 To grilla.Rows.Count - 1 ' deciende desde la primera fila hasta el ultimo cargado
' verifica por fila que en las fila esten cargados todos los datos
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
horario = Me.grilla.Item(Column3.Index, i).Value
dia = Me.grilla.Item(Column1.Index, i).Value '
turno = Me.grilla.Item(Column2.Index, i).Value
curso = Me.grilla.Item(Column4.Index, i).Value
ubicacion = ubicacion + 1
dsohorariodocente = objpersonal.obtenerhorariodocente(horario, dia, turno, curso) ' envia los string para devolver los id
Try
For Each x As DataRow In dsohorariodocente.Tables("ohorariodocente").Rows
ghorario = x.ItemArray(2)
gdia = x.ItemArray(3)
gturno = x.ItemArray(1)
gcurso = x.ItemArray(0)
objpersonal.cargarhorariosprofesor(leg, ghorario, gdia, gturno, gcurso) ' graba los que estan bien
fila = fila + 1
valor = 1
MessageBox.Show("La fila " & ubicacion & " grabada", "Error")
Next
Catch ex As Exception
MessageBox.Show("Los datos de fila " & ubicacion & " ya fueron grabadas con anterioridad para este personal", "Error")
End Try
Else
ubicacion = ubicacion + 1
MessageBox.Show("La fila " & ubicacion & " no tiene todos los datos cargados, por lo cual a partir de esta no se grabaran los datos", "Error")
End If
dsohorariodocente.Tables.Clear()
Next
If valor = 1 Then
MessageBox.Show("Total de Filas correctamente grabadas: " & fila, " Informacion", MessageBoxButtons.OK, MessageBoxIcon.Information)
End If
Else
MessageBox.Show("La grilla debe tener algun valor", "Error", MessageBoxButtons.OK)
End If
Catch ex As Exception
MessageBox.Show("Hubo un error en la grabacion de datos, por favor intente nuevamente", "Error", MessageBoxButtons.OK)
End Try
End If
End Sub