Pasar datos de Access a SQl Server mediante codigo Visual Basic

07/11/2006 - 15:21 por Wabi | Informe spam
Uso Visual Estudio 2003 y VB.Net

Estoy pasando mis tablas de access a sql server 2000 mediante el siguiente
codigo (no cuento con la posibilidad de hacerlo con las herramientas
importacion de datos de sql server, y por otra parte quiero conocer la forma
de hacerlo desde codigo).
El caso es que funciona bien, pero me parece demasiado rebuscado. ¿O es
correcto lo que estoy haciendo?. Vengo de desarrollar en XBASE (FoxPro) y
operaciones como estas se hacian con una simpla sentencia APPEND FROM. ¿Hay
algo asi en VB.NET?
Gracias por el consejo.

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles Button2.Click

'crear conexion access
Dim oconexion As New OleDb.OleDbConnection
oconexion.ConnectionString =
"Provider=Microsoft.Jet.OLEDB.4.0;password=; User ID=Admin; Data Source='" &
Application.StartupPath & "\padronj.mdb'"

'abrir conexion access
oconexion.Open()

'crear conexion sql
Dim oconexionsql As New SqlClient.SqlConnection
oconexionsql.ConnectionString = "workstation id='BELLINI-B8D9530';packet
size@96; " & _
"integrated security=SSPI;data source='BELLINI-B8D9530'; " & _
"persist security info=True;initial catalog=padronj"

'abrir conexion sql
oconexionsql.Open()

'comando access
Dim comando As New OleDb.OleDbCommand
comando.CommandText = "SELECT * FROM afiliados ORDER BY id"
comando.CommandType = CommandType.Text
comando.Connection = oconexion

'Data Reader Access
Dim resultados As OleDb.OleDbDataReader
'obtener resultados en datareader
resultados = comando.ExecuteReader

'comando sql
Dim comandosql As New SqlClient.SqlCommand
comandosql.CommandType = CommandType.Text
comandosql.Connection = oconexionsql
comandosql.CommandText = "INSERT INTO afiliados (id, apellidos, nombres)
" & " VALUES (@valor1, @valor2, @valor3)"

While resultados.Read
Try
comandosql.Parameters.Add("@valor1", resultados.Item("id"))
comandosql.Parameters.Add("@valor2",
resultados.Item("apellidos"))
comandosql.Parameters.Add("@valor3", resultados.Item("nombres"))

comandosql.ExecuteNonQuery()
comandosql.Parameters.Clear()
Catch ex As Exception
MsgBox(ex.Message)
End Try

End While

'cerrar conexion access
oconexion.Close()
'cerrar conexion sql
oconexionsql.Close()

End Sub
 

Preguntas similares