2009-06-09 6 views
3

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

ответ

8

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

0

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

сериализация Dataset:

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

27

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

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

От homepage:. «SQLite библиотека программное обеспечение, которое реализует автономный, бессерверную, нулевой конфигурации, транзакционной SQL движок базы данных SQLite является наиболее распространенный механизм SQL-баз данных в мире. Исходный код для SQLite находится в общественном достоянии. «

+3

Я не могу рекомендовать SQLite достаточно высоко. – Galwegian

+1

+1 это * точно *, что SQLite предназначено для – annakata

+0

SQLite был ужасен в моем опыте. Не рекомендуется – Kousha

1

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

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

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

1

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

4

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

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

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

Open Source:

  1. Firebird - .NET Driver
  2. SQLite - .NET Driver
+0

Интересный - не знал о Firebird. – RichardOD

0

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

DSTableAdapters 

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

0

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

Смежные вопросы