
Guardar contenido datagrid en BD
Publicado por jose antonio (21 intervenciones) el 08/04/2016 16:56:20
Hola de nuevo a todos, os escribo por que me he encontrado en un callejon sin salida, estoy haciendo una aplicación un poco extensa y ya casi la he terminado estoy con retoques de ullima hora para hacerla mas facil de usar, bueno voy al grano. El tema es que tendo un datagrid que se alimenta de otro al que con el evento doble clik paso las filas, este al darle a guardar me lo almacena en una bd, ahora me veo en la necesidad de poder meter datos a mano directamente en este segundo grid pero al darle a guardar me dice que el parametro "dni" no tiene un valor predeterminado. tambien necesitaria que los datos que paso de un grid a este no se puedan manipular, por que al activar la propiedad edit en el grid, puedo editar todo el contenido, alguien puede orientarme?
gracias de antemano
este es el codigo con el que paso los datos de un grid a otro asi como rellenar varios textbox
y este con el que guardo en la BD
gracias de antemano
este es el codigo con el que paso los datos de un grid a otro asi como rellenar varios textbox
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
Dim contador As Integer
Private Sub dgv_cursos_CellMouseDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles dgv_cursos.CellMouseDoubleClick
pasar_datos()
Dim coleccion As DataGridViewSelectedRowCollection = dgv_cursos.SelectedRows
Dim dni, apellidos, nombre, grados, federa, club_aiki As String
Dim Agregar As String = "SI"
'Buscamos en todas las FILAS del DataGrid2
For Each FILA As DataGridViewRow In dgv_asisten.Rows
If FILA.Cells(0).Value = dgv_cursos.CurrentCell.Value Then
Agregar = "NO"
MsgBox("Este dato ya fue agregado.")
Exit For
End If
Next
If Agregar = "SI" Then
For Each fila As DataGridViewRow In coleccion
dni = dgv_cursos(0, fila.Index).Value.ToString
apellidos = dgv_cursos(1, fila.Index).Value.ToString
nombre = dgv_cursos(2, fila.Index).Value.ToString
grados = dgv_cursos(3, fila.Index).Value.ToString
federa = dgv_cursos(8, fila.Index).Value.ToString
club_aiki = dgv_cursos(9, fila.Index).Value.ToString
' Me.dgv_cursos.Rows(fila.Index).DefaultCellStyle.BackColor = Color.Red
dgv_asisten.Rows.Add(dni, apellidos, nombre, grados, federa, club_aiki)
contador = contador + 1
Label5.Text = contador
Next
End If
End Sub
y este con el que guardo en la BD
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
Function GuardarDataGrid() As Boolean
Dim cb_tipo = cb_tipo_c.Text
Dim cb_fede = cb_fede_cola.Text
Try
For X As Integer = 0 To dgv_asisten.Rows.Count - 1
Using cmdInsert As New OleDbCommand
With cmdInsert
.CommandText = " INSERT INTO cursos (dni_cur,tipo_cur,profesor,lugar,federacion,fecha_curso,n_horas) VALUES (dni,'" & cb_tipo & "','" & profe.Text & "','" & lugar_eve.Text & "','" & cb_fede & "','" & fecha_eve.Text & "','" & horas_lec.Text & "')"
.CommandType = CommandType.Text
.Connection = conex
.Parameters.Add("dni", OleDbType.VarChar).Value = dgv_asisten.Rows(X).Cells(0).Value 'lee las celdas del dni
End With
Dim Correcto As Integer = cmdInsert.ExecuteNonQuery
If Correcto = 0 Then
MessageBox.Show("Error no se pudo agregar la fila", "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Error)
End If
End Using
Next
Catch ex As Exception
MessageBox.Show(ex.Message, "Advertencia", MessageBoxButtons.OK, MessageBoxIcon.Error)
Finally
End Try
limpiar_cursos()
Return True
End Function
Valora esta pregunta


0