none
como conectar a base de datos sql desde pocket pc

    Pregunta

  • estoy haciendo una aplicacion para mi pocket pc con windows mobile 5, el problema es el siguiente, no consigo conectarme a la base de datos, lo que necesito es lo siguiente, quiero conectar a la base de datos, pero la base de datos la voy a tener en el pocket pc, no quiero que se conecte a ningun servidor ya que la aplicacion me permitira chequear ciertos datos cuando este lejos de mi oficina, ya me descargue el sql runtime para windows mobile, tambien descargue el mobile sdk pero no lo he instalado ya que el visual studio 2008 trae librerias integradas para desarrollar en pocket (si estoy errado por favor corrijanme), por otro lado aun no he probado la aplicacion en la pocket, unicamente estoy probando con el emulador que trae el visual studio 2008 y alli me dice que el string de conexion tiene error,  el string de conexion que estoy usando es el siguiente:

    sql_conexion = New SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=movies_db.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True")

    ese string es casi identico a otro que tengo en una aplicacion en mi pc, lo unico que cambia es el nombre de la base de datos, en la pc funciona perfectamente pero en la pocket me dice que el comando "Attachdbfilename" no es reconocido.

    alguien me puede ayudar con esto ? y muchas gracias de antemano, saludos.
    martes, 01 de septiembre de 2009 0:29

Respuestas

  • Hola daimaku,

    el connectionString creo que no es correcto. Debería ser algo parecido a esto si utilizas SQLCE (archivo .sdf):

    Try 
     
    cn = New SqlCeConnection 
     
    cn.ConnectionString = "data source=\Windows\TrakerData.sdf" 
     
    If cn.State = ConnectionState.Open Then 
     
    cn.Close() 
     
    End If 
     
    cn.Open() 
     
    Catch sqlex As SqlCeException 

    Piensa que no estás utilizando un SQLExpress Edition, sino un SQL Compact Edition.




    En caso de que la respuesta te sirva, porfavor, márcala como válida

    Muchas gracias y suerte!


    Javier Jiménez Roda


    MCP (Microsoft Certified Professional)
    MCTS (Microsoft Certified Technology Specialist)
    MCPD (Microsoft Certified Professional Developer)
    Blog: http://jimenezroda.wordpress.com

    martes, 01 de septiembre de 2009 8:12
  • Hola daimaku,

    deberías hecharle un ojo al Sync Framework. Quizás te simplifique el tema.

    http://msdn.microsoft.com/es-es/library/bb902854.aspx


    En caso de que la respuesta te sirva, porfavor, márcala como válida

    Muchas gracias y suerte!


    Javier Jiménez Roda


    MCP (Microsoft Certified Professional)
    MCTS (Microsoft Certified Technology Specialist)
    MCPD (Microsoft Certified Professional Developer)
    Blog: http://jimenezroda.wordpress.com

    viernes, 04 de septiembre de 2009 7:44

Todas las respuestas

  • Hola daimaku,

    el connectionString creo que no es correcto. Debería ser algo parecido a esto si utilizas SQLCE (archivo .sdf):

    Try 
     
    cn = New SqlCeConnection 
     
    cn.ConnectionString = "data source=\Windows\TrakerData.sdf" 
     
    If cn.State = ConnectionState.Open Then 
     
    cn.Close() 
     
    End If 
     
    cn.Open() 
     
    Catch sqlex As SqlCeException 

    Piensa que no estás utilizando un SQLExpress Edition, sino un SQL Compact Edition.




    En caso de que la respuesta te sirva, porfavor, márcala como válida

    Muchas gracias y suerte!


    Javier Jiménez Roda


    MCP (Microsoft Certified Professional)
    MCTS (Microsoft Certified Technology Specialist)
    MCPD (Microsoft Certified Professional Developer)
    Blog: http://jimenezroda.wordpress.com

    martes, 01 de septiembre de 2009 8:12
  • Buenos dias daimaku,

    La cadena de conexion que estas utilizando es para conectarte a una base de datos SQL Express.

    Es correcto lo que te coloco Javier en el post anterior.

    Saludos,


    Roberto Alvarado Taborda Core Group BogotaDotNET Compact Framework Developer .NET Bogota - Colombia
    martes, 01 de septiembre de 2009 12:55
  • estoy intentando usar el codigo, pero en el emulador de la pocket me da este error:

    Specified SQL server not found: movies_db.mdf

    como nota agrego que la extension la deje igual "mdf" ya que la base de datos la cree con el sqlserver de la pc, no se si esto influya y debo crearla con el sqlce; esta aclaratoria me trae dos preguntas mas:

    1)  como le agrego el sqlce al emulador de pocket pc que trae el visual studio 2008

    2) como creo la base de datos con extension "sdf" en caso de que la "mdf" no funcione para la pocket

    quiero probarlo en el emulador, ya que estar pasando los archivos a la pocket para probar a cada instante es como engorroso y uno pierde mucho tiempo, de alli mi duda y pregunta.

    gracias por su ayuda, saludos.
    martes, 01 de septiembre de 2009 16:03
  • Hola daimaku

    Primero que todo la extension de la base de datos SQLCE es .sdf no puedes cambiarla pues el Software no la va a encontrar.

    Puedes crear esta base de datos desde el SQL Management Studio en el PC, luego tomas el archivo .sdf y lo pasas o lo copias al emulador.

    Esto ultimo la manera facil es agregar el archivo al proyecto, y en las propiedades le dices que lo copie al
    emulador cuando sea nuevo.

    Saludos,


    Roberto Alvarado Taborda Core Group BogotaDotNET Compact Framework Developer .NET Bogota - Colombia
    martes, 01 de septiembre de 2009 16:16
  • hola, gracias por sus respuestas, he logrado crear la base de datos con extension sdf, cambie todas las llamadas del sql normal al sqlce, todo va funcionando perfecto, una pregunta mas, yo puedo agregar data a esa base de datos sqlce desde la pc ?, me explico mejor, mi intencion es hacer un listado de peliculas, en la computadora la lista tendra mas detalle que en el pocket, en el pocket unicamente los campos necesarios, pero mi intencion es que cuando yo este agregando la data al listado de la computadora el boton grabar, me almacene los datos en la base de datos sql de la compu y a su vez en el mismo archivo movie_ce, que estara tambien en el pc, se graben los datos que iran alli, para despues sincronizar y/o copiar el archivo a la pocket y pueda hacer las consultas respectivas, es posible hacer esto ?

    viernes, 04 de septiembre de 2009 1:02
  • Hola daimaku,

    deberías hecharle un ojo al Sync Framework. Quizás te simplifique el tema.

    http://msdn.microsoft.com/es-es/library/bb902854.aspx


    En caso de que la respuesta te sirva, porfavor, márcala como válida

    Muchas gracias y suerte!


    Javier Jiménez Roda


    MCP (Microsoft Certified Professional)
    MCTS (Microsoft Certified Technology Specialist)
    MCPD (Microsoft Certified Professional Developer)
    Blog: http://jimenezroda.wordpress.com

    viernes, 04 de septiembre de 2009 7:44