FORO SPAMLOCO


SQLite tutorial crear base de datos, conectar con Visual Net


HTML, CSS, PHP, JavaScript, Java... tus dudas por aquí...
   

SQLite tutorial crear base de datos, conectar con Visual Net

Notapor federico » May 2016, 17:51

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
federico
Nivel 10
 
Mensajes: 2245
Registrado: Ene 2011, 17:26
Twitter: @



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

Notapor elQuique » May 2016, 22:32

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#
Avatar de Usuario
elQuique
Moderador
 
Mensajes: 2227
Registrado: May 2009, 18:43
Ubicación: Florida, Uruguay
Twitter: @elQuique

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

Notapor federico » May 2016, 07:52

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.
federico
Nivel 10
 
Mensajes: 2245
Registrado: Ene 2011, 17:26
Twitter: @

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

Notapor federico » May 2016, 08:48

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?
federico
Nivel 10
 
Mensajes: 2245
Registrado: Ene 2011, 17:26
Twitter: @

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

Notapor elQuique » May 2016, 21:05

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")
Avatar de Usuario
elQuique
Moderador
 
Mensajes: 2227
Registrado: May 2009, 18:43
Ubicación: Florida, Uruguay
Twitter: @elQuique

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

Notapor federico » May 2016, 07:22

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.
federico
Nivel 10
 
Mensajes: 2245
Registrado: Ene 2011, 17:26
Twitter: @

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

Notapor elQuique » May 2016, 22:27

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.
Avatar de Usuario
elQuique
Moderador
 
Mensajes: 2227
Registrado: May 2009, 18:43
Ubicación: Florida, Uruguay
Twitter: @elQuique

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

Notapor federico » May 2016, 07:03

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.
federico
Nivel 10
 
Mensajes: 2245
Registrado: Ene 2011, 17:26
Twitter: @

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

Notapor elQuique » May 2016, 09:44

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.
Avatar de Usuario
elQuique
Moderador
 
Mensajes: 2227
Registrado: May 2009, 18:43
Ubicación: Florida, Uruguay
Twitter: @elQuique

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

Notapor federico » May 2016, 18:43

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:
federico
Nivel 10
 
Mensajes: 2245
Registrado: Ene 2011, 17:26
Twitter: @

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

Notapor elQuique » May 2016, 21:39

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.
Avatar de Usuario
elQuique
Moderador
 
Mensajes: 2227
Registrado: May 2009, 18:43
Ubicación: Florida, Uruguay
Twitter: @elQuique

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

Notapor federico » May 2016, 12:56

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.
federico
Nivel 10
 
Mensajes: 2245
Registrado: Ene 2011, 17:26
Twitter: @

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

Notapor elQuique » May 2016, 05:06

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.
Avatar de Usuario
elQuique
Moderador
 
Mensajes: 2227
Registrado: May 2009, 18:43
Ubicación: Florida, Uruguay
Twitter: @elQuique

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

Notapor federico » May 2016, 12:16

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.
federico
Nivel 10
 
Mensajes: 2245
Registrado: Ene 2011, 17:26
Twitter: @

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

Notapor elQuique » May 2016, 13:06

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.
Avatar de Usuario
elQuique
Moderador
 
Mensajes: 2227
Registrado: May 2009, 18:43
Ubicación: Florida, Uruguay
Twitter: @elQuique