Какова лучшая база данных для Настольного приложения C#? (НИКАКИЕ СЕТИ) [закрытый]

Что я должен использовать? Я должен хранить данные, и это только должно быть на локальной машине. Я буду хранить все строковые переменные, и во многих столбцах.

Что является лучшим? Это даже была бы база данных?

13
задан Bloodyaugust 17 February 2010 в 01:55
поделиться

8 ответов

Я бы порекомендовал db4o , механизм базы данных объектов. Это довольно просто, и на клиенте не требуется ни сервер, ни установка. Другой альтернативой может быть SQLite. Вы можете получить поставщика .NET здесь .

Правка

См. Руководство по db4o здесь .

13
ответ дан 1 December 2019 в 20:11
поделиться

Почему не SQL Server Express? Это даже бесплатно.

2
ответ дан 1 December 2019 в 20:11
поделиться

Попробуйте < Button > < TextBlock > a < Bold > b c .

-121--2664649-

В день 1 Да. TortoityHG (0.9.3 через Kinn Client загрузки на FogBugz) и TortoitySVN (1.6.7, Build 18415 - 64 Bit, 2010/01/22 17:55:06), кажется, играют вместе без проблем на Windows 7 x64.

Щелчок правой кнопкой мыши в проводнике предоставляет оба подменю, и накладки работают нормально для обоих типов репозиториев.

Я не слишком старался создать репозитарий обоих типов pf в одном и том же месте, но кажется, что Subversion не создаст репо Mercurial (Hg). Однако HG казалась счастливой создать репо там же, где и существующее репо SVN. Я не слишком долго проверял, правильно ли синхронизировались оба репо, так что будьте осторожны там. Проверь его, прежде чем использовать в гневе.

-121--2480454-

Если вы просто хотите сохранить небольшой объем данных в довольно простой структуре и не собираетесь выполнять сложные запросы, рассмотрите XML-файл. Дополнительное программное обеспечение не требуется, и с ним можно легко работать с помощью LINQ to XML .

0
ответ дан 1 December 2019 в 20:11
поделиться

Вариант решения @ ChristopheD

s = 'TheLongAndWindingRoad'

pos = [i for i,e in enumerate(s+'A') if e.isupper()]
parts = [s[pos[j]:pos[j+1]] for j in xrange(len(pos)-1)]

print parts
-121--865379-

Я настоятельно рекомендую проверить структуру сериализации. Это даже не близко к производительности базы данных, но, если вы не говорите о большом количестве данных, это имеет примерно на 100% меньше накладных расходов. Сериализация объектов в файл в .net - это игра ребенка:

XmlSerializer serializer = new XmlSerializer(typeof(myObjectType));

using(FileStream stream = new FileStream("file", FileMode.Create, FileAccess.Write)
{
   serializer.Serialize(stream, myObject);        
}

Все!

Чтение назад в значительной степени наоборот. LINQ предоставляет еще больше возможностей. Опять же, это даже не близко к БД с точки зрения производительности, но я видел много, много реализаций, в которых база данных была чрезвычайно переполнена для объема хранимых данных. Очевидно, что если у вас есть явная необходимость масштабировать и т.д., вы захотите спланировать это. Правильный инструмент для правильной проблемы и все такое.

-121--2663110-

XML может вместо вашего требования!

0
ответ дан 1 December 2019 в 20:11
поделиться

Я бы рекомендовал использовать sqlite, это очень быстрая база данных только для файлов, с возможностью встраивания, с широкими возможностями. У меня есть легкий ORM с привязкой к C#, который абстрагирует и упрощает доступ к ней. Вот живая демонстрация веб-сервиса с использованием sqlite.

О да, db4o также является хорошим выбором, для которого у меня также есть привязка к базе данных C#, которая поддерживает автоматические свойства C# (так как стандартный поставщик db4o не поддерживает) и другие общие сценарии доступа к данным.

5
ответ дан 1 December 2019 в 20:11
поделиться

SQL Server Compact 3.5 SP1 не требует установки (вам просто нужно доставить файлы .dll, хотя проверьте лицензионное соглашение, если это разрешено) и довольно просто использовать.

6
ответ дан 1 December 2019 в 20:11
поделиться

Вам следует обратить внимание на SQLite, если вы ищете СУБД или что-то вроде MongoDB, если вы храните объекты или что-то подобное.

3
ответ дан 1 December 2019 в 20:11
поделиться

Я настоятельно рекомендую проверить структуру сериализации. Это даже не близко к производительности базы данных, НО, если вы не говорите о большом количестве данных, у нее примерно на 100% меньше накладных расходов. Сериализация объектов в файл в .net - детская игра:

XmlSerializer serializer = new XmlSerializer(typeof(myObjectType));

using(FileStream stream = new FileStream("file", FileMode.Create, FileAccess.Write)
{
   serializer.Serialize(stream, myObject);        
}

Вот и все!

Обратное чтение - это как раз противоположное. LINQ предоставляет еще больше возможностей. Опять же, это даже не близко к БД с точки зрения производительности, но я видел много-много реализаций, в которых база данных была чрезмерно избыточной для объема хранимых данных. Очевидно, что если у вас есть явная потребность в масштабировании и т. Д., Вы захотите спланировать это. Правильный инструмент для правильной задачи и все такое.

2
ответ дан 1 December 2019 в 20:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: