2009-03-08 25 views
6

¿Cómo creo un archivo db en C#? un amigo me dijo que estaba en la caja de herramientas y que no usa sqlite. No veo nada que pueda ser, ni cómo se llama. Google no ayudó :(Base de datos C# en un archivo

Respuesta

3

No existe un proveedor de base de datos basado en archivos integrado en C# o .NET Framework. Por supuesto, existen conectores preexistentes para usar SQL Server (que incluye SQL Express), pero si necesita un RDBMS totalmente funcionales que se basa archivos, tiene que usar algo como SQLite o Firebird (también un fan de VistaDB, no libre o de código abierto, pero muy sólido y bastante asequible).

+1

¿Qué pasa con XML? ¿No está basado en archivos? – cdonner

+0

@cdonner XML no es una base de datos según las definiciones más comunes. (Aunque, por supuesto, formalmente puede ser). –

-7

se equivoca. Las bases de datos no están desarrollados en C#. Las bases de datos se crean utilizando un sistema de base de datos como Oracle, MS SQL Server, MySQL y muchos otros.

Una vez que Cree una base de datos usando uno de los proveedores anteriores, luego puede realizar acciones en la base de datos usando su lenguaje de programación preferido (en su caso, C#) para obtener datos y poner datos en él.

+0

Eso no es del todo cierto, necesariamente. Productos como VistaDB son RDBMS completamente funcionales escritos en C#. –

+0

@Rex: en el contexto de la pregunta, es una afirmación bastante precisa. Él está buscando cómo crear una base de datos en C#, no en un RDBMS. – TheTXI

0

Si está utilizando Visual Studio o Web Developer Express, existen maneras de crear fácilmente una base de datos MS SQLExpress. Simplemente vaya a Agregar nuevo artículo ... y debería ser uno de los tipos de archivos disponibles.

Tenga en cuenta que debe haber instalado ya sea Microsoft SQL Express Edition (¡gratis, como en beer!) O Microsoft SQL (¡muy libre, en todos los sentidos!). Si no lo ha hecho, no tiene la opción de crear un archivo de base de datos tan fácilmente. Si aún lo tiene, puede obtenerlo here.

Como han mencionado otros contestadores, estrictamente hablando esto NO es una característica de C#. MS SQL y sus derivados, son aplicaciones de bases de datos, al igual que Oracle, MySQL o PostgreSQL. Es simplemente que Microsoft Visual Studio hace que usar el producto de base de datos de Microsoft sea muy fácil por defecto. Diferenciar entre C#, Visual Studio y cualquier programa de base de datos probablemente le dará mejores respuestas, más rápido, sin importar a dónde pregunte. :)

9

Podría ser ...

SQL Server Compact Edition - Un motor ligero, durante el proceso de base de datos diseñada para funcionar en dispositivos y ordenadores de sobremesa y está orientado hacia el almacenamiento de datos local. Compact Edition incluye un subconjunto de tipos de datos de SQL Server 2005 y comparte elementos comunes del lenguaje Transact-SQL (T-SQL) con los motores del servicio de datos.

1

En el menú Agregar nuevo elemento: "Base de datos basada en servicios" o "Base de datos de servidor Sql" si se trata de una aplicación asp.net. Estoy seguro de que su amigo lo dijo como "crear un archivo SQL db Express en Visual Studio".

Dicho esto, si usted quiere llenar una base de datos vacía, con las tablas que corresponden a aC# modelo, se puede crear un modelo linq2sql, y utilizar su CreateDatabase de hacer eso para usted :)

Es posible que desee para comprobar esto http://quickstarts.asp.net/QuickStartv20/aspnet/doc/data/vwd.aspx (enlace de desarrollador web visual, pero se aplica).

Para un/explicación completa en profundidad de cómo SQL Express se puede utilizar con una basada en archivo de comprobación enfoque semi y sus limitaciones: http://www.databasejournal.com/features/mssql/article.php/3704171/SQL-Server-2005-Express-Edition---Part-8---XCopy-Deployment.htm

0

Cada base de datos tiene una file system en algún formato binario más que probable que la costumbre y la utiliza un cache para controlar el flujo de la (s) vida (s) de la base de datos.

Si crea un database system, necesitará algún tipo de caché porque solo quiere leer del archivo si el caché ya lo ha liberado.

Si tiene 1000 clientes que tocan en el mismo db, ciertamente no desea read/write en el archivo para cada solicitud de cliente, por lo que desea administrar una cola de clientes y ejecutarla contra el caché para que el caché sabe que no debe liberar el db después de que se alcanza su tiempo de vida para actualizar el lapso de tiempo, por lo tanto, sin tener que volver a cargar el archivo, si se desecha y vuelve a cola, hasta que la cola que hace referencia al objeto db esté vacía.

Creación de un caché bien diseñado que utilizan todos los rdbms para que no se creen objetos duplicados y no se recarguen los archivos si no es necesario.

0

Puede utilizar

FileDB - Una base de datos de C# para almacenar archivos

http://filedb.codeplex.com

Hay un ejemplo MVC en la fuente que le permite subir archivos y también tiene arrastrar y soltar.

Luego lo guarda en un solo archivo en la ubicación que ha especificado.

De esta manera:

private string pathDB = @"C:\CMS-MVC\Parts\FileManager\filedb-19055\trunk\MvcTest\Data\MvcData.dat"; 

Que un archivo almacenará todos los archivos en la que un "contenedor".

+0

problema con esto es que aunque guarde un archivo diga hi.txt no puede recuperarlo por el nombre hi.txt solo puede buscar por alguna identificación devuelta cuando se guardó el archivo – Samuel

0

Quizás podría probar Microsoft LocalDB. Está basado en archivos, pero utiliza una instalación de SQLExpress de bajo nivel para alojarlo.

Cuestiones relacionadas