none
Pasar datos de base Sdf a base Mdf

    Pregunta

  •  

    Deseo saber como puedo pasar los datos de una aplicacion que tengo en una pocket pc, en esta todo esta correcto y trabaja perfectamente en el ingreso de datos, ahora tengo que hacer una aplicacion para pasar los datos almacenados en la pocket a la base Matriz (esta en Sql 2005), trato de conectar a la base Sdf de la pocket de la misma forma de como lo hice en la aplicacion que desarrolle para la misma, pero me muestra mensajes de error, deseo saber si hay alguien que me ayude en este inconveniente.

    gracias.

     

    esta es la forma de como me conecto a la base en la aplicacion de la pocket (Smart Device) y funciona perfecto, trate de hacer lo mismo es la aplicacion (Windows Forms) y sale error.

     

    ////Creamos la cadena de conexion

    //string pathDir = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase);

    //string pathDB = System.IO.Path.Combine(pathDir, "SiaMobile.sdf");

    //string connectionString = string.Empty;

    //connectionString = string.Format(@"DataSource={0}", pathDB);

    ////Creamos el objeto conexion

    //conn = new SqlCeConnection(connectionString);

    ////Abrimos la conexion

    //if (conn.State == ConnectionState.Closed)

    // conn.Open();

    ////Ejecutamos un comando

    //SqlCeCommand cmd = conn.CreateCommand();

    //cmd.CommandType = CommandType.Text;

    //cmd.CommandText = "SELECT a.tx_numident AS RUC, a.tx_descripcion AS Cliente, a.tx_ciudad AS Ciudad, a.tx_direccion AS Direccion, a.vm_cupo AS CupoCredito FROM cliente a ";

    //try

    //{

    // //Obtenemos el objeto SqlCeResultSet

    // this.resultSet = cmd.ExecuteResultSet(ResultSetOptions.Scrollable | ResultSetOptions.Updatable);

    // ResultSetView rview = this.resultSet.ResultSetView;

    // rview.Columns = new string[] { "RUC", "Cliente", "Ciudad", "Direccion", "CupoCredito" };

    //}

    //catch (SqlCeException)

    //{

    // //Manejar el error

    //}

    miércoles, 13 de febrero de 2008 16:30

Todas las respuestas

  •  

    cueales mensajes de error?
    miércoles, 13 de febrero de 2008 16:43
    Moderador
  • este es el error...

     

    No se puede cargar el archivo o ensamblado 'System.Data.SqlServerCe, Version=9.0.242.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91' ni una de sus dependencias. La definición del manifiesto del ensamblado no coincide con la referencia al ensamblado. (Excepción de HRESULT: 0x80131040)

     

    en mi windows form tengo 2 botones uno para migrar datos de la pocket a la base de datos y el otro para hacer lo contrario.

     

    el error se produce cuando quiero migrar los datos desde la pocket a la base de datos, pero no puedo avanzar en nada porque no puedo conectarme a la base en mencion.

    miércoles, 13 de febrero de 2008 16:55
  • segun se ve estas con una dll diferente en ambos dispositivos...

    utiliza en ambos la misma dll de referencia.

    miércoles, 13 de febrero de 2008 16:57
    Moderador
  • pero si he notado eso y uso las mismas referencias que en la otra aplicacion

     

    tengo estos using

     

    using System.Data.SqlTypes;

    using System.Data.SqlServerCe;

     

    y la referencia esta agregada.

     

    hay alguna idea o si hay otra forma mas facil de hacerlo...

     

    ya que tengo este ejemplo en la que hacen un RDA

     

    Imports System.Data.SqlServerCe
    Imports System.Text
    Imports System.IO

    PublicClass Form1
    Dim conn AsNew SqlCeConnection("Data Source=\Program Files\RDA2\RDA.sdf")

    PrivateSub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim rdaOleDbConnectString AsString = _
    "Provider=sqloledb;Data Source=user12;Initial Catalog=RDAA;Trusted_Connection=yes"

    Dim rda As SqlCeRemoteDataAccess = Nothing
    Dim resultado AsInteger

    Try

    conn.Open()

    Dim cmd As SqlCeCommand = conn.CreateCommand()
    Dim cmd2 As SqlCeCommand = conn.CreateCommand()
    Dim cmd3 As SqlCeCommand = conn.CreateCommand()
    cmd.CommandText =
    "select count (*) from nombres"
    cmd2.CommandText = "DROP TABLE nombres"
    cmd3.CommandText = "delete from nombres"
    resultado = cmd.ExecuteScalar

    If resultado >= 0 Then
    If resultado > 0 Then
    cmd3.ExecuteNonQuery()
    EndIf
    cmd2.ExecuteNonQuery()
    EndIf

    conn.Close()

    rda =
    New SqlCeRemoteDataAccess()
    rda.InternetUrl =
    "http://user12/prueba/sqlcesa30.dll"
    rda.LocalConnectionString = "Data Source=\Program Files\RDA2\RDA.sdf"
    rda.Pull("Nombres", "Select * from Nombres", rdaOleDbConnectString, RdaTrackOption.TrackingOnWithIndexes)
    MsgBox(
    "Pull operation completed", MsgBoxStyle.Information, "Pull")
    Catch err As SqlCeException
    ShowErrors(err)
    Finally
    rda.Dispose()
    EndTry
    EndSub

    creo que no funciona, pero a esta persona si le conecta la base.

     

    gracias.

    miércoles, 13 de febrero de 2008 17:05
  •  

    los using no tienen nada que ver con las referencias del proyecto...

     

    revisa en las referencias del proyecto cual es la version de la dll correspondiente,.

    miércoles, 13 de febrero de 2008 17:10
    Moderador