Página 1 de 1

SQLite tutorial crear base de datos, conectar con Visual Net

Publicado: 10 May 2016, 17:51
por federico
SQLite tutorial crear base de datos, conectar, etc.. con Visual Net.

Tienen algún enlace a un buen tutorial?

La documentación oficial es muy escueta

https://www.sqlite.org/quickstart.html

y ni que hablar que no indica nada sobre como integrar en Visual Net

Re: SQLite tutorial crear base de datos, conectar, etc.. con

Publicado: 12 May 2016, 22:32
por elQuique
En Downloads https://www.sqlite.org/download.html tienes la sección:

Precompiled Binaries for .NET que te permite descargar la clase System.Data.SQLite debes definir si trabajas con el framework 2.0 o 4.0 y si usas 32 o 64 bits, en http://system.data.sqlite.org/index.htm ... loads.wiki ves List of Release Packages, tienes por ejemplo los ejecutable e instaladores:

Setups for 32-bit Windows (.NET Framework 2.0 SP2) http://system.data.sqlite.org/downloads/1.0.101.0/sqlite-netFx20-setup-bundle-x86-2005-1.0.101.0.exe
Setups for 64-bit Windows (.NET Framework 2.0 SP2) http://system.data.sqlite.org/downloads/1.0.101.0/sqlite-netFx20-setup-bundle-x64-2005-1.0.101.0.exe

Setups for 32-bit Windows (.NET Framework 4.0) http://system.data.sqlite.org/downloads/1.0.101.0/sqlite-netFx40-setup-bundle-x86-2010-1.0.101.0.exe
Setups for 64-bit Windows (.NET Framework 4.0) http://system.data.sqlite.org/downloads/1.0.101.0/sqlite-netFx40-setup-bundle-x64-2010-1.0.101.0.exe

Luego de instalado el que corresponde te queda accesible System.Data.SQLite para que enlaces en tu proyecto como referencia:
Imagen
te va a quedar disponible en referencias:
Imagen
y mediante un using System.Data.SQLite; lo puedas utilizar de idéntica forma que cuando usas using System.Data.SQL;

Código: Seleccionar todo

DataTable dt = new DataTable();

        try
        {
            SQLiteConnection cnn = new SQLiteConnection(dbConnection);
            cnn.Open();
            SQLiteCommand mycommand = new SQLiteCommand(cnn);
            mycommand.CommandText = sql;
            SQLiteDataReader reader = mycommand.ExecuteReader();
            dt.Load(reader);
            reader.Close();
            cnn.Close();
        }
        catch (Exception e)
        {
            throw new Exception(e.Message);
        }
        return dt;
Te dejo un tutorial Using SQLite With C#

Re: SQLite tutorial crear base de datos, conectar, etc.. con

Publicado: 13 May 2016, 07:52
por federico
Genial, muchas gracias.

Creo que lo que me estaba faltando era ese seteo de LOCAL porque mi programa enlazaba con la base de datos pero al exportar la aplicación daba error. Este fin de semana pruebo.

Re: SQLite tutorial crear base de datos, conectar, etc.. con

Publicado: 14 May 2016, 08:48
por federico
Por si alguien visita este foro y le sirve de referencia aparte del método señalado por elQuique hay otra forma de tener SQLite integrado en Visual Studio

1. Comenzar un nuevo proyecto en Visual Studio
2. Tools – NuGet Package Manager – Package Manager Console
3. En la ventana de commandos: Install-Package System.Data.SQLite y pulsar ENTER
4. El paquete se autoinstala y no precisamos hacer nada adicional
5. Continuar con el código del programa

El paquete que se autoinstala pesa como 50 megas creo, pero al momento de generar el ejecutable solo se copian las librerías necesarias que más o menos son 3-4 megas.

Lo que me está faltando es como indicarle a Visual Studio que incorpore mi base de datos SQlite en el paquete de distribución.

Es decir, si copio directamente mibase.db a la carpeta bin\debug el programa se ejecuta correctamente pero al publicar la aplicación en el paquete resultante mibase.db no aparece y por lo tanto el programa que se instala no encuentra la base de datos y la crea vacía para que no genere error (igual da error al no reconocer la tabla de datos)

Probé ir a propiedades del proyecto, agregar un recurso Resource y allí indicarle mibase.db

El tema es que al compilar el programa en lugar de tomar esa base de datos ubicada en la raíz del proyecto vuelve a generar una base de datos vacía y la guarda en bin\debug

Será por las rutas relativas?

Estoy usando esta cadena de conexión:

Código: Seleccionar todo

Public Class Form1
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
        Dim conn As New SQLiteConnection("Data Source=mibase.db")
Probé agregar la base de datos como un recurso y luego con
Data Source = \Resource\mibase.db

Hay que usar algo tipo Dim fullPath = Path.Combine(Application.StartupPath, "mibase.db")

o es un tema de caminos relativos?

Re: SQLite tutorial crear base de datos, conectar, etc.. con

Publicado: 15 May 2016, 21:05
por elQuique
Pero si tu en vez de:

Código: Seleccionar todo

SQLiteConnection.CreateFile("mibase.sqlite");
haces:

Código: Seleccionar todo

SQLiteConnection.CreateFile("C:\\mibase.sqlite");
estás indicando el path.

O bien en vez de:

Código: Seleccionar todo

Dim conn As New SQLiteConnection("Data Source=mibase.db")
usas:

Código: Seleccionar todo

Dim conn As New SQLiteConnection("Data Source=c:\\mibase.db")

Re: SQLite tutorial crear base de datos, conectar, etc.. con

Publicado: 16 May 2016, 07:22
por federico
Muchas gracias por la ayuda.

La base de datos la encuentra dentro de Visual Studio al correr el programa. Lo que no estoy logrando es que al crear el instalador el archivo de la base de datos sea incluido en el paquete. Entonces al no encontrarla cuando ejecuto el instalador y corro el programa se crea la base de datos pero vacía.

Eso es lo que me está faltando. Ya la agregué como item al Solution Explorer, también la agregué como Resource en Propiedades del proyecto y aún así no la copia.

Algo me está faltando, seguramente un detalle de esos que son "obvios" y te tienen a mal traer.

Actualmente las propiedades de la base de datos las tengo así:

Imagen


Tal vez opte por intentar crear la base de datos desde el mismo código si es que no existe cuando se ejecuta el programa así me evito este lío, pero me gustaría saber que hago mal.

Vi ejercicios donde se incluyen carpetas como \images y se agregan como recursos y cuando se crea el instalador y después se instala el programa esa carpeta y archivos también se copian. No entiendo que me falta con el tema de la base de datos.

Re: SQLite tutorial crear base de datos, conectar, etc.. con

Publicado: 16 May 2016, 22:27
por elQuique
En mi caso debido a la experiencia en diferentes computadoras, versiones de SO, etc, opto por poner fijo la carpeta para evitar esos dramas, pero no es que no se pueda, solo para ahorrar tiempo.

Tampoco utilizo mucho los instaladores generados por Visual Studio.

Re: SQLite tutorial crear base de datos, conectar, etc.. con

Publicado: 17 May 2016, 07:03
por federico
elQuique escribió:En mi caso debido a la experiencia en diferentes computadoras, versiones de SO, etc, opto por poner fijo la carpeta para evitar esos dramas, pero no es que no se pueda, solo para ahorrar tiempo.

Tampoco utilizo mucho los instaladores generados por Visual Studio.
Entiendo. Pero si el cliente quiere respaldar la base de datos automáticamente en Dropbox o Google Drive por ejemplo el hecho de que la base de datos esté físicamente en un lugar fuera de su control puede ser una contra.

Re: SQLite tutorial crear base de datos, conectar, etc.. con

Publicado: 18 May 2016, 09:44
por elQuique
Primero que mi software respalda automático, no dejo en manos del cliente realizar un respaldo, le doy mucha importancia a los datos.

Segundo que vos no sabes donde esta tu base, y por eso el post, yo te digo que la mía la pongo en un lugar fijo, o sea c:\sitema\base.db jaja como no voy a saber donde esta la base ?? que más exacto que una ruta.

Re: SQLite tutorial crear base de datos, conectar, etc.. con

Publicado: 18 May 2016, 18:43
por federico
elQuique escribió:Primero que mi software respalda automático, no dejo en manos del cliente realizar un respaldo, le doy mucha importancia a los datos.

Segundo que vos no sabes donde esta tu base, y por eso el post, yo te digo que la mía la pongo en un lugar fijo, o sea c:\sitema\base.db jaja como no voy a saber donde esta la base ?? que más exacto que una ruta.
Excelente! (lo primero) :alabanza:

Lo segundo voy a probar con rutas fijas. Lo del respaldo automático te lo debo :mrgreen:

Re: SQLite tutorial crear base de datos, conectar, etc.. con

Publicado: 18 May 2016, 21:39
por elQuique
El respaldo es sencillo, utilizo más que nada SQL y MySQL, pero se puede en otras incluida SQLite, haces un DUMP de la base, comprimes y copias a X carpeta (sea un externo, nube, etc, o varias de estas).

En el caso de SQLite que es un archivo único la base puedes hacer un DUMP o bien copiar ese .md a X carpeta.

Lo puedes lanzar con clic en un icono, o bien hacer una tarea programada, en mi caso según el caudal de datos lanzo uno a medio día y otro al cierre.

Re: SQLite tutorial crear base de datos, conectar con Visual

Publicado: 25 May 2016, 12:56
por federico
Muy bien, gracias por la explicación.

Por si alguien cae por acá y le sirve solucioné otros de los problemas e incompatiblidad. En Visual Studio - Compile - marqué compatibilidad para x86 o para x64 pero no dejé la opción ANY.

Parece que ahí estaba uno de los problemas al instalar el programa en otro equipo daba error, ahora funciona.

Re: SQLite tutorial crear base de datos, conectar con Visual

Publicado: 27 May 2016, 05:06
por elQuique
Claro en algunos Windows de 32 bits, y sobre todo si es Windows XP es necesario indicarle x86. Tambien sucede casi el mismo problema cuando utilizas framework 4.6 o 4.5 y no esta instalado o bien 4.0 en XP o 7 sin instalarlo.

Re: SQLite tutorial crear base de datos, conectar con Visual

Publicado: 27 May 2016, 12:16
por federico
elQuique escribió:Claro en algunos Windows de 32 bits, y sobre todo si es Windows XP es necesario indicarle x86. Tambien sucede casi el mismo problema cuando utilizas framework 4.6 o 4.5 y no esta instalado o bien 4.0 en XP o 7 sin instalarlo.
Entiendo. En el caso del programita de test que estaba haciendo al instalarse en Windows 7 detectaba que faltaba el framework adecuado y lo bajaba.

Re: SQLite tutorial crear base de datos, conectar con Visual

Publicado: 27 May 2016, 13:06
por elQuique
Si, si es con instalador lo detecta y baja, pero no siempre los programadores distribuyen la aplicación con esa posibilidad y el error es confuso de saber porque se da si no te pasó antes.