Tengo un datagrid enlazado con varias tablas de access, al cual necesito añadirle 2 columnas más para introducir datos que no están en esas tablas.
Como hago para recorrer este datagrid y guardarlo en una tabla nueva?
| |||
Recorrer datagrid y guardar en tabla Tengo un datagrid enlazado con varias tablas de access, al cual necesito añadirle 2 columnas más para introducir datos que no están en esas tablas. Como hago para recorrer este datagrid y guardarlo en una tabla nueva? |
| |||
Respuesta: Recorrer datagrid y guardar en tabla Lo mas sencillo es recorrer el recordset al cual está enlazado el DataGrid, y guardar los registros en la nueva tabla. |
| |||
Respuesta: Recorrer datagrid y guardar en tabla No, con un DataSet no puedes hacerlo, tendrías que utilizar un DataTable, pero si lo único que quieres es añadir dos columnas más al DataGrid, no veo el problema. Puedes hacerlo a través de su propiedad Column: DataGridView1.Columns.Add("NameCol1", "Header1") DataGridView1.Columns.Add("NameCol2", "Header2") Donde "NameCol1" es el nombre identificativo de la columna y "Header1" es el texto del encabezamiento. |
| |||
Respuesta: Recorrer datagrid y guardar en tabla Gracias por tu respuesta, pero lo que quería es los valores que tengo en el datagrid o en el datatable pasarlos a otra tabla que no está en la consulta que tengo realizada, pero que sí tiene esos campos coincidentes. Te explico, en la consulta tengo Idproveedor,Idcliente,Idobra,sum(ImporteAlbaran), todo esto agrupado por proveedor y por obra y quiero pasar los valores de estos campos a los correspondientes en la tabla Facturación, donde posteriormente se introducirá la fecha factura y número. |
| |||
Respuesta: Recorrer datagrid y guardar en tabla Hola, no sé si es por mi máquina, pero esto va lentiiiiiiiisimo! mañana intentaré ponerte un ejemplo. |
| |||
Respuesta: Recorrer datagrid y guardar en tabla Bueno, lo prometido es deuda. Prueba con este procedimiento a "GuardarEnTabla" le pasas como prámetros la conexión que ya tienes abierta y la consulta.
Código:
Private Sub GuardarEnTabla(ByVal Con As SqlConnection, ByVal StrQry As String) Dim i As Integer Try Con.Open() Dim Cmd As New SqlCommand(StrQry, Con) ' creamos un reader con los datos de la consulta Dim Reader As SqlDataReader = Cmd.ExecuteReader Dim sql As String = "" ' leemos el reader y vamos ejecutando la consulta While Reader.Read sql = "INSERT INTO Facturacion (" For i = 0 To Reader.FieldCount - 1 sql = sql & Reader.GetName(i) & "," Next ' quitar la última coma sql = Microsoft.VisualBasic.Left(sql, Len(sql) - 1) sql = sql & ") VALUES ('" For i = 0 To Reader.FieldCount - 1 sql = sql & Reader(i) & "','" Next ' eliminar los dós últimos caracteres sql = Microsoft.VisualBasic.Left(sql, Len(sql) - 2) sql = sql & ")" EjecutarInsert(sql) End While Reader.Close() Catch ex As Exception MsgBox(ex.Message.ToString) End Try End Sub Private Sub EjecutarInsert(ByVal sSQL As String) Try ' creamos una nueva conexión a la BD ' nota: Pon la misma cadena de conexión que tenías antes Dim cone As New SqlConnection("MiCadenadeConexion") cone.Open() Dim cdo As New SqlCommand(sSQL, cone) cdo.ExecuteNonQuery() Catch ex As Exception MsgBox(ex.Message.ToString) End Try End Sub |
| |||
Respuesta: Recorrer datagrid y guardar en tabla Muchas gracias por tu respuesta, me ayuda en gran medida, sólo una consulta, en el caso de que no quisiera pasar todos los datos, sólo algunos en concreto y asignarlos en la tabla facturación en los campos que le corresponda, como sería? P. ejemplo de la tabla Albaran el campo IdProveedor pasarlo a la tabla FActuracion campo IdProveedor |
| |||
Respuesta: Recorrer datagrid y guardar en tabla Mira el segundo parámetro es una cadena SQL, ahí le puedes pasar los campos que quieres copiar a la otra tabla: p.e. GuardarEnTabla(Miconexion, "Select Campo1, campo3, campo5, From Albaran....") Claro que, los campos de la tabla facturación tienen que estar en el mismo orden y ser del mismo tipo que los pasados a la función. |
| |||
Respuesta: Recorrer datagrid y guardar en tabla Que quedaría de esta forma? Private Sub guardarentabla(ByVal con As OleDbConnection, ByVal strqry As String) Dim i As Integer Try con.Open() Dim cmd As New OleDbCommand(strqry, con) Dim reader As OleDbDataReader = cmd.ExecuteReader Dim sql As String = "SELECT IDPROVEEDOR FROM ALBARAN" While reader.Read sql = "INSERT INTO FACTURACION(" For i = 0 To reader.FieldCount - 1 sql = sql & reader.GetName(i) & "," Next sql = Microsoft.VisualBasic.Left(sql, Len(sql) - 1) sql = sql & ")values ('IDPROVEEDOR" For i = 0 To reader.FieldCount - 1 sql = sql & reader(i) & "','" Next sql = Microsoft.VisualBasic.Left(sql, Len(sql) - 2) sql = sql & ")" End While ejecutarinsert(sql) reader.Close() Catch ex As Exception MsgBox(ex.Message.ToString) End Try End Sub Me dan estos 2 errores: Error 1 No se ha especificado ningún argumento para el parámetro 'con' de 'Private Sub guardarentabla(con As System.Data.OleDb.OleDbConnection, strqry As String)'. Error 2 No se ha especificado ningún argumento para el parámetro 'strqry' de 'Private Sub guardarentabla(con As System.Data.OleDb.OleDbConnection, strqry As String)'. |
| |||
Respuesta: Recorrer datagrid y guardar en tabla Eso seguramente era porque todavía no habrías hecho la llamada a la función. |
| |||
Respuesta: Recorrer datagrid y guardar en tabla hola soy nuevo en esto de vb y me cuesta bastante tengo una hoja de exel y necesito importar a una base de datos los datos de la hoja. pede conectrame a la hoja puedo ver los datos en un datagrid pero nose como importar a la base de datos. en la planilla tengo las columna codigo, precio, descricion en en labase de datos en stock tengo los misos campos tengo que cargar y luego actualizar cuando me mande una planilla nueva si hay cambio en los precios |