02/04/2011, 23:02
|
| | | Fecha de Ingreso: junio-2009 Ubicación: Córdoba
Mensajes: 226
Antigüedad: 15 años, 6 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 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
|