none
TableAdapters, DataSet y Access RRS feed

  • Pregunta

  • una pregunta, a ver si alguien me puede ayudar

    Cree una aplicación en visual studio y le agregé un origen de datos de access, y cuando me preguntó si quería hacer un copia local, le dije que sí. Automáticamente me creó un dataset .xsd y sobre él empecé a crear consultas para cada tabla (de actualización, inserción y captura de datos). Al compilar y ejecutar el proyecto todo bien, pero al publicarlo para instalarlo en otro ordenador resulta que no me "cargaba" los datos de la base de datos (la cual tenía que ubicar manualmente donde me decía, ya que me salía un mensaje de error que no encontraba el archivo .mdb)

    El caso es que he excluido el archivo mdb del explorador de soluciones y he cambiado la cadena de conexión con la base de datos en la pestaña de configuración de las propiedades del proyecto a una ubicación que no tiene nada que ver con el archivo de la solucion. Al volver a compilar y ejecutar el proyecto, ahora resulta que me un error en la primera línea de código en la que se ejecuta la consulta .getdata de un tableadapter del dataset, mostrándome "no se controló TypeInitialitatioException"

    Es cierto que al ejecutar las consultas de acutalización o inserción, no incluía el update al tableadapter, ni AcceptChages como he visto por ahí, ni nada por el estilo, pero no lo consideré necesario, ya que en las pruebas al compilar y ejecutar, todo funcionaba correctamente, confirmando que los datos realmente iban a las tablas

    ¿cómo podría solucionar esto?... es evidente que aún me pierdo en muchos conceptos, pero es lo que tiene ser la primera vez que trato con Visual Studio

     

    Agradecería cualquier ayuda

     

    sábado, 15 de octubre de 2011 23:12

Todas las respuestas

  • hola

    no localizas en el solution explorer un archivo de extension .config ? si es asi veras que este es un xml en donde encontraras la cadena de coenxion que usa el dataset tipado .xsd

    cuando compilas este mismo archivo .config se ubica junto al .exe, cuando lleves la aplciacion al cliente solo debes cambiar este para que apunte al .mdb de forma correcta

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    lunes, 17 de octubre de 2011 12:37
  • Hola, Leandro

     

       Gracias por responder. Efectivamente he encontrado ese archivo .config y he modificado la ruta a donde tengo la base de datos, pero sigue dándome el mismo error en la línea:

     Dim DatosCalles As DatosAccess.C_CallesDataTable = C_Calles_TA.GetData

    diciendo que "no se pudieron aplicar las propiedades de publicación para el elemento "Datos_Access.mdb".

    A partir de ahora quiero hacer todas las conexiones de manera manual, pero ya tengo creadas muchas consultas en el .xsd y quiero aprovecharlas de alguna manera. ¿cómo puedo hacer para volver a utilizarlas sin que devuelva error?; y en caso de que vuelvan a funcionar, ¿debería hacer uso del update de los table adapters y de AcceptChanges, para que los datos se actualicen realmente en Access??

     

    Gracias de nuevo y un saludo

    lunes, 17 de octubre de 2011 14:40
  • debería hacer uso del update de los table adapters y de AcceptChanges, para que los datos se actualicen realmente en Access??

    estas usando el GetData() del tableadapter, el Update o AcceptChange no aplica

    este mensaje cuando se presenta? cuando pasa por la linea de la GetData(), o cuando compilas ?

     

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    lunes, 17 de octubre de 2011 15:08
  • el mensaje me salta al iniciar la depuración, y se encuentra en el evento Load del formulario de inicio (esa línea de código es la primera que se encuentra de un gran número de ellas que hacen referencia tanto al .getdata() como a otras consultas de selección, actualización e inserción que he incluido en el dataset...
    lunes, 17 de octubre de 2011 21:37
  • "jmbegara" escribió:

    > Cree una aplicación en visual studio y le agregé un origen
    > de datos de access, y cuando me preguntó si quería hacer un
    > copia local, le dije que sí.
    >
    > El caso es que he excluido el archivo mdb del explorador de
    > soluciones y he cambiado la cadena de conexión con la base de
    > datos en la pestaña de configuración de las propiedades del
    > proyecto a una ubicación que no tiene nada que ver con el
    > archivo de la solucion. Al volver a compilar y ejecutar el
    > proyecto, ahora resulta que me un error en la primera línea de
    > código en la que se ejecuta la consulta .getdata de un
    > tableadapter del dataset, mostrándome "no se controló
    > TypeInitialitatioException"
    >

    Hola, José:

    Me extraña muchísimo que por el mero hecho de modificar la ruta de la base de datos en las Propiedades del Proyecto, concretamente en la pestaña 'Configuración', obtengas el mensaje de error que nos estás indicando.

    Es cierto que cuando distribuyas tu aplicación, la base de datos se tiene que encontrar en la misma carpeta que hayas indicado en las Propiedades del Proyecto, por tanto, si se encuentra en dicha carpeta, no veo motivo alguno para que obtengas esa excepción. ¿?

    Para empezar, yo te aconsejaría que te olvidaras de modificar manualmente el archivo *.config de tu aplicación, y todas las modificaciones que efectues las hicieras a través del propio entorno de desarrollo de Visual Studio, porque éste te puede modificar sin que te des cuenta el archivo de configuración de tu aplicación, y si no sabes muy bien lo que estás haciendo, lo más normal es que tengas problemas.

    Confírmame que inicialmente tenías en las Propiedades del Proyecto, pestaña 'Configuración', un valor parecido al siguiente:

    Si tu deseas especificarle otro valor distinto al parámetro Data Source, desde esa misma ventana puedes asignarle el que creas conveniente. Tal fácil como escribir:

        Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Mis documentos\Database1.accdb

    Insisto que en los otros PCs donde distribuyas tu aplicación, tiene que existir el archivo 'Database1.accdb' en una carpeta llamada 'Mis documentos' existente en la unidad C:.

    Desde luego, si dices que has excluido la base de datos de Access de la ventana 'Explorador de soluciones', no te va a quedar más remedio que modificar desde las Propiedades del Proyecto la configuración de la aplicación para especificar la nueva ruta en el parámetro 'Data Source' de la cadena de conexión, si deseas ejecutar de nuevo tu proyecto desde el entorno de Visual Studio.

    Tampoco estaría de más que limpiaras la solución (menú Generar --> Limpiar solución) y vuelvas de nuevo a generarla cuando hayas modificado alguna propiedad de la aplicación.

    Un saludo


    NOTA: si esta respuesta te ha resultado útil, recuerda marcarla como satisfactoria.

    Enrique Martínez
      [MS MVP - VB]

    Si usas Visual Basic .NET y deseas ser productivo y feliz, activa la instrucción Option Strict.

    viernes, 21 de octubre de 2011 15:09