Visual Basic - Pasar los datos de un Datagridview a una base de datos Access

Life is soft - evento anual de software empresarial
   
Vista:

Pasar los datos de un Datagridview a una base de datos Access

Publicado por Gabriel (4 intervenciones) el 06/04/2015 06:48:00
primero que nada hola.
mi consulta es la siguiente, cree un formulario en visual basic 2010 de facturación al introducir el código de un producto en un textbox me carga todo los datos del producto en el datagrid hasta ahi todo va todo ok!! ahora el problema es que no se como hacer para guardar ese datagridview en mi base de datos, y que se limpie el datagridview para poder facturar de nuevo.
busque en todos lados en Internet y no logro solucionarlo
agradezco toda la ayuda brindada
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Wilfredo Patricio Castillo

Pasar los datos de un Datagridview a una base de datos Access

Para limpiar no encontraste nada en internet?

Tan simple como hacer un datagridview.rows.clear()

Saludos cordiales
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Pasar los datos de un Datagridview a una base de datos Access

Publicado por Gabriel (4 intervenciones) el 07/04/2015 05:32:39
gracias por responder!!
esa es la parte facil la complicada es la de guardar. que no logro hacerla.
dejo el codigo del programa y un par de capturas de pantalla capas puede ayudar a explicarme mejor.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Wilfredo Patricio Castillo

Pasar los datos de un Datagridview a una base de datos Access

Guardar también es sencillo, que habría de extraordinario?

El asunto está en que debes hacer un for para recorrer cada fila del datagridview.

Sino como pretendes capturar los datos de cada fila?.

Hay que echarle ganas al asunto, al menos con las cosas elementales, sino como pretendes hacer una factura?.

No todo se basa en que me pase preguntando a como hago cada cosa sencilla que uno lo debe investigar, y el hecho de investigar no significa que preguntes por lo que no investigaste.

Todos empezamos desde cero, pero preguntando por cada letra o palabra, sino que hay que ponerle ganas al asunto y estudiar.

Hace años publiqué como grabar datos con Access, y VB 2005, y ha sido visto por muchas persona y ni siquiera lo revisaste y dices que no encuentras nada.

Acá te dejo el enlace para que lo revises y mejores en tus inserciones que son muy vulnerables a inyeccion de código.

Revisa esto tal vez te sirve

http://wilfredo-patricio.blogspot.com/2008/07/procedimientos-almacenados-en-access-y.html
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Pasar los datos de un Datagridview a una base de datos Access

Publicado por Gabriel (4 intervenciones) el 07/04/2015 21:27:47
Muchas gracias por responder. nc si viste el codigo que publique ?? por las dudas te escribo la parte donde hice el for el problema que se me presenta es que le doy depurar a mi programa y funciona todo ok, hago la primer factura y lo guarda todo exelente!!, intento volver a guardar otra y me da error. por las dudas te dejo el for y te animas a decirme que hice mal??
antes deje en un rar todo el codigo completo por las dudas

Function GuardarDataGrid() As Boolean

For X As Integer = 0 To DataGridView1.Rows.Count - 1

Dim CadenaSQL1 As String = "INSERT INTO DetallesFactura (IdFactura, Cantidad, Codigo, Detalle, Descuento, Precio, Importe) VALUES ('" & _
CStr(DataGridView1.Rows(X).Cells("IdFactura").Value) & "','" & CStr(DataGridView1.Rows(X).Cells("Cantidad").Value) & "','" & CDbl(DataGridView1.Rows(X).Cells("Codigo").Value) & "','" & _
CStr(DataGridView1.Rows(X).Cells("Detalle").Value) & "','" & CDbl(DataGridView1.Rows(X).Cells("Descuento").Value) & "','" & CDbl(DataGridView1.Rows(X).Cells("Precio").Value) & "','" & CDbl(DataGridView1.Rows(X).Cells("Importes").Value) & "')"



Using cmdInsert As OleDbCommand = New OleDbCommand(CadenaSQL1, Conexion)
If Conexion.State = ConnectionState.Open Then
Conexion.Close()
End If
Conexion.Open()
cmdInsert.ExecuteNonQuery()
Conexion.Close()
Conexion.Open()
End Using
Next

Return True
End Function
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Wilfredo Patricio Castillo

Pasar los datos de un Datagridview a una base de datos Access

Bueno es muy simple solo decirte que tu código no me gusta para nada, pero en vista que has hecho tu tarea, te voy a pasar tu rutina algo mejorada

Solo Decirte una cosa muy importante a tener en cuenta, en las propiedades del datagridview
AllowUserToAddRows=false

y lo demás igual como lo has estado haciendo solo que mejorado

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
Function GuardarDataGrid() As Boolean
        Dim Conn As New OleDbConnection("Aquí tu cadena de conexion")
        Try
            Conn.Open()
            For X As Integer = 0 To DataGridView1.Rows.Count - 1
                Using cmdInsert As New OleDbCommand
                    With cmdInsert
                        .CommandText = " INSERT INTO DetallesFactura (IdFactura, Cantidad, Codigo, Detalle, Descuento, Precio, Importe) VALUES (@IdFactura,@Cantidad,@Codigo,@Detalle,@Descuento,@Precio,@Importes)"
                        .CommandType = CommandType.Text
                        .Connection = Conn
                        .Parameters.Add("@IdFactura", OleDbType.Integer).Value = Convert.ToInt32(DataGridView1.Rows(X).Cells("IdFactura").Value)
                        .Parameters.Add("@Cantidad", OleDbType.Integer).Value = Convert.ToInt32(DataGridView1.Rows(X).Cells("Cantidad").Value)
                        .Parameters.Add("@Codigo", OleDbType.VarChar).Value = DataGridView1.Rows(X).Cells("Codigo").Value.ToString
                        .Parameters.Add("@Detalle", OleDbType.VarChar).Value = DataGridView1.Rows(X).Cells("Detalle").Value.ToString
                        .Parameters.Add("@Descuento", OleDbType.Double).Value = Convert.ToDouble(DataGridView1.Rows(X).Cells("Descuento").Value)
                        .Parameters.Add("@Precio", OleDbType.Double).Value = Convert.ToDouble(DataGridView1.Rows(X).Cells("Precio").Value)
                        .Parameters.Add("@Importes", OleDbType.Double).Value = Convert.ToDouble(DataGridView1.Rows(X).Cells("Importes").Value)
                    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
            If Conn.State = ConnectionState.Open Then
                Conn.Close()
                Conn.Dispose()
            End If
        End Try
        Return True
    End Function


Eso está solo para que copies y pegues, o bueno, tus tipos de datos en alguna linea revisa que sea el correcto, por lo demas ya no debes tener problemas de ningún tipo y puedes agregar toda la vida sin problemas.

Saludos cordiales
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Pasar los datos de un Datagridview a una base de datos Access

Publicado por Gabriel (4 intervenciones) el 09/04/2015 03:30:09
Muchas gracias tu código me funcionó a la perfección. Todavía no puedo encontrar el error en mi código. disculpa todas las molestia ocasionadas. Y gracias por responder.
un saludo muy cordial
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

pasar de un text a un campo en access

Publicado por JUAN CARLOS OCAMPO (1 intervención) el 27/09/2015 08:01:18
buenas noches, tengo un problema similar, no soy muy experto en el tema pero hago el intento quiero pasar los datos que ingrese a un textbox a una base de datos de access. ya tengo conectada la base de datos correctamente cuando empiezo a llenar los datos en los text, estos los guardo en una variable, pero mi problema aqui es: cuanto le doy el comando para insertar y le voy a pasar los values, no se como pasar esos valores que tengo en la respectivas variables.

dejo el codigo para su ayuda, mil graacias.

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
43
44
45
46
47
48
49
50
51
Private Sub botoninsertar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles botoninsertar.Click
        Dim conexion As String
        conexion = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & "D:\bdaccesslibrovbnet.mdb" & ";"
        Dim nombre As String = campo1.Text
        Dim apellido As String = campo2.Text
        Dim id As String = campo3.Text
        Dim dir As String = campo4.Text
        Dim tel As String = campo5.Text
        Dim factu As String = campo6.Text
        Dim local As String = campo7.Text
        Dim nlocal As String = campo8.Text
        Dim vfactu As String = campo9.Text
        Dim nsorteo As String = campo10.Text
        Dim nsorteo2 As String = campo11.Text
        Dim nsorteo3 As String = campo12.Text
        Dim nsorteo4 As String = campo13.Text
        Dim nsorteo5 As String = campo14.Text
 
 
 
        Dim seleccion As String = "insert into  clientes(Nombres,Apellidos,Identificacion,Direccion,Telefono,Num_factura,Num_local,Nombre_local,valor_factura,nsorteo,nsorteo2,nsorteo3,nsorteo4,nsorteo5)VALUES("" + nombre + "","" + apellido + "","" + id + "","" + dir + "","" + tel +"","" + factu + "","" + local + "","" + nlocal + "","" + vfactu + "","" + nsorteo + "","" + nsorteo2 + "","" + nsorteo3 + "","" + nsorteo4 + "","" + nsorteo5 + "")  "
 
 
        '"select*from clientes"
        Dim adaptadordedatos As OleDbDataAdapter
        Dim tabladedatos As New DataTable
        Try
            adaptadordedatos = New OleDbDataAdapter(seleccion, conexion)
            adaptadordedatos.Fill(tabladedatos)
            MsgBox("Registro Insertado", MsgBoxStyle.Information)
 
            'tabla.DataSource = tabladedatos
        Catch ex As Exception
            MsgBox("Error: " & ex.Message, MsgBoxStyle.AbortRetryIgnore)
 
        End Try
        campo1.Text = ""
        campo2.Text = ""
        campo3.Text = ""
        campo4.Text = ""
        campo5.Text = ""
        campo6.Text = ""
        campo7.Text = ""
        campo8.Text = ""
        campo9.Text = ""
        campo10.Text = ""
        campo11.Text = ""
        campo12.Text = ""
        campo13.Text = ""
        campo14.Text = ""
    End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Wilfredo Patricio Castillo

pasar de un text a un campo en access

Guíate de lo que publiqué arriba, solo quitas el for y el next, todo lo demás es igual, y en lugar de capturar los datos desde un datagridview como está el ejemplo lo haces desde tus textboxes, y te ahorrarías de pasarlo a variables que sería en vano en tu caso, ya que no veo otro uso que le estés dando a tus variables.

Saludos cordiales.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar