| ID | Asunto | Fecha | Nick | |
| 41264 | Pasar de Access a SQL Express 2005 | 13/05/08 00:43 | gato_verde | |  |
Gracias por su atención. Quiero pasar datos de un sistema a otro. He creado un programita con la ayuda del Sr. GUILLERMO, en sus notas elguille.info y con algunos foreros (ejemplos anteriores). Pero hay cosas que no entiendo y quisiera saber si Uds. me pueden ayudar. Pongo el programa primero: Imports System.Data
Imports System.Data.SqlClient
Imports System.Data.OleDb
Public Class Paseyvan
Private Sub Button1
_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button1.Click
Dim F, C As Integer 'esto lo uso yo.
'---------------------------------------
'Llenar datagridview1 con Datos de Access
Dim conexionAccess As String
conexionAccess = "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=C:\PersonalSueldos\Sueldos2009_oag\Datos\PersonalSueldos.mdb"
Dim conAccess As
OleDbConnection = New OleDbConnection(conexionAccess)
' Establesco la conección
Dim SelectAccess As String
SelectAccess = "SELECT * FROM Personal Order By IdPersonal"
Dim AdapterAccess As New
OleDbDataAdapter(SelectAccess, conAccess) 'genero el Data
Adapter para Access
Dim TablaAccess As New DataTable 'Creo una Tabla
DataGridView1.DataSource = TablaAccess 'Conecto el
DataGridView1 con la Tabla
AdapterAccess.Fill(TablaAccess) 'lleno la Tabla y me lo
muestra en el DataGridView con los Datos de Access
'---------------------------------------
' Generar elementos inciales, llenar el DataGridView2
conlos Datos de Acces para grabar en SQL.
Dim conexionSQL As String
conexionSQL = "Data
Source=.\SQLEXPRESS;AttachDbFilename=C:\PersonalSueldos\Sueldos2009
_oag\Datos\SueldosArch.mdf;Integrated Security=True;Connect Timeout=30;User
Instance=True"
Dim ColumnasDataRow As DataRow 'Creo la columnas
para llenar
Dim TablaSQL As DataTable 'creo el DataTable
Dim DataAdapterSQL As SqlClient.SqlDataAdapter 'creo el DataAdapter
Dim SQLConnection As SqlClient.SqlConnection 'creo
la conexion
Dim CommandBuilderSQL As SqlClient.SqlCommandBuilder 'creo el command builder
'la conexion
SQLConnection = New SqlClient.SqlConnection(conexionSQL) '
DataAdapterSQL = New
SqlClient.SqlDataAdapter("Select * from Personal",
SQLConnection)
SQLConnection.Open() 'abro la conexion
' Creo uptate, addnew y delete del DataAdapterSQL
(creado mas arriba) con un CommandBuilder
CommandBuilderSQL = New SqlClient.SqlCommandBuilder(DataAdapterSQL)
TablaSQL = New DataTable
'lleno el datatable con los datos necesarios
TablaSQL.Clear()
DataAdapterSQL.Fill(TablaSQL)
'establezco la clave primaria
Dim IdPersonal(0) As DataColumn
IdPersonal(0) = TablaSQL.Columns(0)
TablaSQL.PrimaryKey = IdPersonal
'vinculo el datagrid con la tabla que corresponde
DataGridView2.DataSource = TablaSQL
'Aqui paso los datos de Acces a la Tabla de SQL
Dim midato(30) As Object
For F = 0 To
Me.DataGridView1.Rows.Count - 2 ' me da el valor int de ultimo registro
For C = 0 To
Me.DataGridView1.Columns.Count - 1 'me da el valor int de la ultima columna
midato(C) = TablaAccess.Rows(F).Item(C) 'tomo
el valor por fila y columna de Access
Next Csigo en la proximo, porque todo no alcanza [Editado: gato_verde, 13/05/2008 00:44:32] |
|
| ID | Asunto | Fecha | Nick | |
| 41265 | Re: Pasar de Access a SQL Express 2005 (Resp: 41264) | 13/05/08 00:51 | gato_verde | | |
Sigo con el programa ColumnasDataRow = TablaSQL.NewRow 'Aviso que va un nuevoRow
ColumnasDataRow("IdPersonal") = midato(0)
ColumnasDataRow("NumDoc") = midato(1)
ColumnasDataRow("TipoDoc") = midato(2)
ColumnasDataRow("Sexo") = midato(3)
ColumnasDataRow("NumCuil") = midato(4)
ColumnasDataRow("NumCuil1") = midato(5)
ColumnasDataRow("Apellido") = midato(6)
ColumnasDataRow("Nombres") = midato(7)
'Try
TablaSQL.Rows.Add(ColumnasDataRow) 'Adiciono los datos a la Tabla
Next F
'Aqui digo que lleve los datos del DataGridView (mejor dicho la
Tabla) al archivo FISICO de SQL. ???????
DataAdapterSQL.Update(TablaSQL)
TablaSQL.AcceptChanges()
End Sub
End ClassEs maravilloso llenar primero la Tabla y despues grabar todos los cambios, inclusive los delete que tanto costaran con el VB6. Pregunto: El pase de los datos al Archivo fisico estan desconectados?. Porque abro la conexion arriba y nunca la cierro y me funciona. Pregunto: Para rellenar el ID autonumerico, es necesario generar UN FILL de la Tabla SQL?, porque sino, me da error. COMO FUNCIONA ESO?. Esto pregunto porque es copiado,y el analisis no me llena. GRACIAS DE ANTEMANO. [Editado: gato_verde, 13/05/2008 00:52:49] [gato_verde, 13/05/2008 03:50:08] [gato_verde, 13/05/2008 03:50:38]
Si esta respuesta resuelve tu duda, por favor pulsa en la de este mensaje. Gracias. |