Foros del Web » Programación para mayores de 30 ;) » .NET »

Copiar una base de datos en otra

Estas en el tema de Copiar una base de datos en otra en el foro de .NET en Foros del Web. Hola amigos, necesito copiar una base de datos sobre otra y la verdad es q no sé bien cómo hacerlo. Ya he leído y actualizado ...
  #1 (permalink)  
Antiguo 19/01/2007, 02:25
Avatar de SuperPinwi  
Fecha de Ingreso: septiembre-2005
Mensajes: 317
Antigüedad: 18 años, 7 meses
Puntos: 1
Copiar una base de datos en otra

Hola amigos,

necesito copiar una base de datos sobre otra y la verdad es q no sé bien cómo hacerlo. Ya he leído y actualizado bases de datos independientemente (por valores por pantalla) pero cómo hacer que una base de datos actualice otra?? necesitaría dos conexiones, dos adaptadores, etc? se puede hacer en el mismo método? necesito un método auxiliar?

cualquier sugerencia será bienvenida

gracias y pasad un feliz fin de semana!!
  #2 (permalink)  
Antiguo 19/01/2007, 02:25
Avatar de SuperPinwi  
Fecha de Ingreso: septiembre-2005
Mensajes: 317
Antigüedad: 18 años, 7 meses
Puntos: 1
Re: Copiar una base de datos en otra

se me olvidaba, el lenguaje es Visual Basic .NET
  #3 (permalink)  
Antiguo 19/01/2007, 02:38
Avatar de Korku  
Fecha de Ingreso: noviembre-2003
Ubicación: En un lugar oscuro...
Mensajes: 688
Antigüedad: 20 años, 5 meses
Puntos: 5
Re: Copiar una base de datos en otra

Hola chuly !!

¿Te refieres replicar una base de datos? ¿Qué bases de datos usas?

Saludiños
__________________
Carpe diem quam minimum credula postero.


http://www.programador-freelance.es
  #4 (permalink)  
Antiguo 19/01/2007, 02:50
Avatar de SuperPinwi  
Fecha de Ingreso: septiembre-2005
Mensajes: 317
Antigüedad: 18 años, 7 meses
Puntos: 1
Re: Copiar una base de datos en otra

son bd's access pero no tienen la misma estructura... sólo quiero copiar algunas columnas jeje

estaba pensando ahora mismo sobre cómo hacerlo

x cierto es una mejora q me han pedido de akel antiguo programa q hice hace 2 meses :P

besssisssssss pekeñoo
  #5 (permalink)  
Antiguo 19/01/2007, 03:03
Avatar de Korku  
Fecha de Ingreso: noviembre-2003
Ubicación: En un lugar oscuro...
Mensajes: 688
Antigüedad: 20 años, 5 meses
Puntos: 5
Re: Copiar una base de datos en otra

Cita:
Iniciado por SuperPinwi Ver Mensaje
son bd's access pero no tienen la misma estructura... sólo quiero copiar algunas columnas jeje

estaba pensando ahora mismo sobre cómo hacerlo

x cierto es una mejora q me han pedido de akel antiguo programa q hice hace 2 meses :P

besssisssssss pekeñoo
Es sencillo, creas dos conexiones diferentes (uno para cada base de datos) y luego sabiendo la estructura de las tablas de ambas bases de datos, simplemente haces un select y luego dentro del bucle metes un insert into y así va llenando... no sé me he explicado bien...

Besiños
__________________
Carpe diem quam minimum credula postero.


http://www.programador-freelance.es
  #6 (permalink)  
Antiguo 19/01/2007, 07:32
Avatar de SuperPinwi  
Fecha de Ingreso: septiembre-2005
Mensajes: 317
Antigüedad: 18 años, 7 meses
Puntos: 1
Re: Copiar una base de datos en otra

weno al final lo q he hecho ha sido crear un datatable, dos conexiones y dos métodos. Con uno de los métodos meto en el datatable la base de datos que quiero copiar entera. Esto me lo hace bien.

con el otro método lo que quiero hacer es ir actualizando fila a fila las columnas q me interesen, pero me da el error:

"no se puede actualizar no se han especificado valores para algunos de los parámetros requeridos"

este es el código del método que me falla

Código:
    Public Shared Sub actualizaBD1()
        'Objeto de comando que permite la manipulación de la base de datos
        Dim objAcciones1 As New OleDbCommand
        'tabla de datos utilizada por este método
        Dim dtBD1 As DataTable
        'Objeto adaptador
        Dim objAdaptador
        'Objeto que permite actualizar la base de datos
        Dim OleDbUpdateCommand As OleDbCommand = New OleDbCommand
        'Variable de bucle
        Dim i As Integer
        'Para manejar las filas de la base de datos
        Dim fila As Integer
        'Para conocer el número de filas
        Dim n As Integer
        Dim n2 As Integer
        'Cadenas temporales para las variables de la base de datos
        Dim sDescripcion As String
        Dim sValor As String
        Dim sVisibilidadLabel As String
        Dim sVisibilidadTA As String
        Dim sID As String
        Dim sTexto As String
        Dim sVisible As Boolean
        Dim sTamanno As String
        Dim eti As String

        If File.Exists(ruta) Then
            Try
                ObjCactualizaBD1.Open()
                objAdaptador = New OleDbDataAdapter("SELECT * FROM Etiquetas ORDER BY ID", ObjCactualizaBD1)
                objAcciones1.Connection() = ObjCactualizaBD1
                OleDbUpdateCommand.Connection = ObjCactualizaBD1
                dtBD1 = New DataTable
                objAdaptador.fill(dtBD1)
                n = dtBD1.Rows.Count
                n2 = dtBD2.Rows.Count
                MessageBox.Show(dtBD2.Rows(0)("valor").ToString) -- con esta línea sólo compruebo que el datatable tiene datos efectivamente
                If n = 0 Then
                    MessageBox.Show("No se ha encontrado ningún registro que coincida con la selección", "Aviso")
                Else
                    'Actualiza la línea de la base de datos asociada al campo de texto

                    While fila <= n
                        For i = 0 To i = n2

                            sID = dtBD2.Rows(fila)("ID").ToString

                            sDescripcion = dtBD2.Rows(fila)("descripcion").ToString

                            OleDbUpdateCommand.CommandText = "UPDATE Propiedades " & "SET descripcion = " & sDescripcion & " WHERE ID = " & sID
                            OleDbUpdateCommand.ExecuteNonQuery()
Next
                    End While
                End If
            Catch ex As Exception
                MessageBox.Show(Err.Description, "Aviso")
            Finally
                ObjCactualizaBD1.Close()
            End Try
        Else
            MessageBox.Show("No hay una base de datos cargada en este momento, por favor cargue una y vuelva a intentarlo", "Aviso")
        End If
    End Sub
weno a ver si veis algo raro a mi me duele la cabeza ya de darle vueltas jejejeje

saludines y a disfrutar del finde!!! Besis
  #7 (permalink)  
Antiguo 19/01/2007, 08:11
Avatar de freegirl
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: Catalonia
Mensajes: 4.334
Antigüedad: 20 años, 7 meses
Puntos: 156
Re: Copiar una base de datos en otra

por que no lo haces como te dice Korku? sólo sería una instrucción SQL.

Por ejemplo:

Cita:
SELECT * INTO Tabla1 IN 'c:\Base1.mdb' FROM Tabla2

saludos
  #8 (permalink)  
Antiguo 22/01/2007, 01:54
Avatar de SuperPinwi  
Fecha de Ingreso: septiembre-2005
Mensajes: 317
Antigüedad: 18 años, 7 meses
Puntos: 1
Re: Copiar una base de datos en otra

el problema es que no quiero introducir valores, si no actualizarlos, así que así y todo tengo que hacer el UPDATE q es lo q me está dando problemas.

gracias y saludines
  #9 (permalink)  
Antiguo 22/01/2007, 04:45
Avatar de SuperPinwi  
Fecha de Ingreso: septiembre-2005
Mensajes: 317
Antigüedad: 18 años, 7 meses
Puntos: 1
Re: Copiar una base de datos en otra

sabéis porqué me da ese error pues? esto sigue sin funcionar y ya no sé qué más probar
  #10 (permalink)  
Antiguo 22/01/2007, 09:29
Avatar de SuperPinwi  
Fecha de Ingreso: septiembre-2005
Mensajes: 317
Antigüedad: 18 años, 7 meses
Puntos: 1
Re: Copiar una base de datos en otra

Gracias por el interés, lo acabo de resolver. Por lo visto necesita los nuevos valores entrecomillados.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:32.