Безсерверная база данных в C # - PullRequest
4 голосов
/ 09 июня 2009

Полный вопрос новичка здесь: я просто играю с C # впервые и хочу создать приложение Windows Forms, которое хранит некоторую информацию в структуре базы данных, но, очевидно, не хочет, чтобы что-то вроде MySQL было установлено на компьютере каждого клиента. Как мне это сделать?

Ответы [ 9 ]

28 голосов
/ 09 июня 2009

Вы можете использовать SQLite . Не требует установки или сервера на клиентских компьютерах. Вот блог , описывающий, как использовать его с .NET. Это простой в использовании, просто добавьте ссылку на System.Data.SQLite.dll .

Вот поставщик данных с открытым исходным кодом для .NET: System.Data.SQLite

С homepage : "SQLite - это программная библиотека, которая реализует автономный, безсерверный, транзакционный механизм баз данных SQL с нулевой конфигурацией. SQLite - наиболее широко используемый механизм баз данных SQL в world. Исходный код SQLite находится в открытом доступе."

9 голосов
/ 09 июня 2009

Вы используете базу данных, которая не требует установки. Есть несколько - есть Microsoft SQL Server Compact , который, честно говоря, назван плохо, так как он не будет поддерживать более полезные функции SQL, такие как хранимые процедуры, представления и так далее. Также есть VistaDB , который поддерживает хранимые процедуры, но требует покупки, если вам нужны плагины Visual Studio.

5 голосов
/ 09 июня 2009

Ответ: встроенные базы данных. У вас есть довольно большой список встроенных баз данных, которые вы можете использовать:

Коммерческий:

  1. VistaDB - Эта база данных полностью написана на управляемом C #.

Открытый исходный код:

  1. Firebird - .NET Driver
  2. SQLite - .NET Driver
2 голосов
/ 09 июня 2009

Использование SQL Server CE

1 голос
/ 09 июня 2009

Простой способ сделать это начиная с .NET 3.5 и выше - хранить ваши данные в файлах XML и использовать Linq to XML . Это позволяет вам использовать SQL-подобные команды для ваших данных, которые фактически скомпилированы в ваше приложение, поэтому вы получаете полную поддержку IDE IntelliSense и проверку ошибок.

1 голос
/ 09 июня 2009

Вы можете записать свои данные в XML-файлы или взглянуть на Sql Server Compact Edition .

Вы также можете работать с объектами и сериализовать / десериализовать их на диск как двоичные файлы.

Конечно, тип хранилища, который вы выбираете, во многом зависит от типа хранимых вами данных (и их объема).

0 голосов
/ 28 марта 2012

VelocityDB работает в режиме без сервера, но также может быть объединен с сервером, когда это необходимо. Он превосходит все другие варианты, упомянутые здесь, примерно на величину, см. сравнение здесь . Это позволяет вам постоянно использовать практически любые структуры данных .NET. Весь движок базы данных и дополнительный сервер реализованы с использованием кода C #.

0 голосов
/ 09 июня 2009

Самым простым способом будет SQL Server Compact, поскольку он интегрируется непосредственно в Visual Studio IDE (я просто рискну предположить, что вы используете VS). Добавьте «Локальную базу данных», создайте ваши таблицы и убедитесь, что ваш Table Adapter использует методы Select, Update, Insert и Delete. Если во время создания базы данных вы назвали свой набор данных "DS", вы сможете создать экземпляр объекта адаптера таблицы из

DSTableAdapters 

Пространство имен, а также методы GetData () или Fill () для извлечения данных, а также Insert (), Update () и Delete () для управления ими.

0 голосов
/ 09 июня 2009

Возможно, вы могли бы сериализовать набор данных и сохранить его как XML. Я немного сбит с толку, почему, если вы играете, вам нужно установить MySQL на все компьютеры клиентов. Вы могли бы взглянуть на использование SQL Express, который может быть бесплатным?

Серийный набор данных:

http://blogs.msdn.com/yosit/archive/2003/07/10/9921.aspx http://msdn.microsoft.com/en-us/magazine/cc163911.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...