2011-09-14 26 views
11

Sé que esto puede parecer una pregunta que ya se hizo, pero ya intenté las soluciones.Base de datos portátil para C#

Estoy construyendo un programa con C# y necesito guardar datos de forma que cada cliente tenga su propia ruta dinámica (nueva) a su base de datos. ¿Qué puedo hacer para que los usuarios no necesiten instalar cosas adicionales, sino simplemente .NET Framework?

Escuché sobre SQLite, pero realmente no lo conseguí funcionando.

+0

¿Con qué plataformas que se pretende utilizar? Solo Windows? Además, si su modelo de datos es simple, considere una tienda basada en archivos en lugar de una base de datos. De lo contrario, SQL Server es probablemente la mejor opción. –

+0

SQLite admite múltiples plataformas – bryanmac

+0

¿Puedes aclarar a qué te refieres con portátil? Si se refiere a X-Plat, SQL Compact no es la respuesta (aunque muy capaz en Windows). – bryanmac

Respuesta

13

Sql Server CE. Se ejecuta en proceso y puede implementar todos los ensamblajes necesarios con su aplicación. Ver este artículo:

How to: Deploy a SQL Server Compact 3.5 Database with an Application

Actualización: La adición de algunos otros enlaces relacionados con SQL Server CE que he encontrado útil:

+0

+1: para los enlaces útiles. –

5

Descargar el proveedor de datos SQLite .NET here y luego hacer referencia System.Data.SQLite.dll desde su aplicación. El siguiente ejemplo debería funcionar desde el principio.

using (var connection = new SQLiteConnection("Data Source=yourfile.db;Version=3;")) 
using (var command = connection.CreateCommand()) 
{ 
    connection.Open(); 
    command.CommandText = "select name from from sqlite_master"; 
    using (var reader = command.ExecuteReader()) 
    { 
    while (reader.Read()) 
    { 
     Console.WriteLine(Convert.String(reader["name"])); 
    } 
    } 
} 

Por supuesto, todo lo que hace es enumerar las tablas en el archivo especificado. Si el archivo no existe, se creará automáticamente y, naturalmente, no habrá ninguna tabla en él. Pero, al menos debería funcionar.

0

Si no me equivoco, C# .net puede interactuar con una base de datos sql sin software de servidor por separado. Solo importaría system.data.sqlclient.

SQL podría funcionar para usted, pero la razón de que no hay una manera simple de comenzar es que la arquitectura de la base de datos no es un tema simple. Hay muchos libros geniales disponibles para que comiences si eliges seguir ese camino. Trata específicamente de la sintaxis de MSSQL, pero "Fundamentos de T-SQL" de Itzik Ben-Gan es útil. Por supuesto, las variaciones de sintaxis entre las diferentes iteraciones de sql son extremadamente comunes, y no una gran carga una vez que conoces la idiosincrasia de la que estás tratando.

+0

No exactamente. Hay SQL Server Compact Edition, que @ ipr101 mencionó. Full SQL Server requiere un servicio instalado. –