Все встроенные базы данных не могут открыть соединения - PullRequest
1 голос
/ 31 мая 2010

Я работаю над настольным приложением winforms, которое должно хранить данные. Я принял действительно плохое решение попробовать встроить базу данных. Я пробовал:

  • SQLite
  • VistaDB
  • SQL Server Compact

В каждом случае мне удавалось генерировать Entity Framework Model поверх базовой схемы, которую я создал. У меня есть событие, которое добавляет данные, которые я использовал для тестирования этих баз данных.

Ну, я продолжал добавлять новую запись, используя EF, и обнаружил, что она на самом деле не вставляет запись. При отладке я проверил объект контекста, чтобы увидеть, что происходит. Оказывается, он говорит, что «базовый поставщик не удалось открыть», или что-то в этом роде. Это не было исключением, просто не вставлял запись.

То же самое произошло со всеми 3 встроенными базами данных - побудив меня понять, что в моей конфигурации должно быть что-то не так.

Ну, я попытался написать несколько базовых SQL-файлов, используя sqlconnection и sqlcommand. На этот раз это исключение. В случае SQL Server Compact теперь написано:

При установлении соединения с SQL Server произошла ошибка, связанная с сетью или экземпляром. Сервер не найден или не был доступен. Убедитесь, что имя экземпляра указано правильно и что SQL Server настроен для разрешения удаленных подключений. (поставщик: сетевые интерфейсы SQL, ошибка: 26 - ошибка при поиске сервера / указан экземпляр)

Я подумал, что, возможно, проблема в пути в app.Config. Поэтому я изменил строку подключения на:

Обратите внимание, что я упростил путь от всего, что может иметь пробелы, и избегал использования бессмысленного каталога данных, который вызывает проблемы, когда каталог отладки не соответствует предварительно настроенному значению каталога данных. Я использую Windows 7; Я подумал, что, возможно, это проблема доступа - поэтому я попытался запустить VS 2010 в режиме администратора. Неудачно. Я также установил Sql Server Compact SP2, думая, что это может быть ошибкой. Не повезло.

В любом случае, я готова вырвать мои волосы. Я в сжатые сроки для этого и не ожидал провести день, пытаясь выяснить, что происходит.

1 Ответ

1 голос
/ 31 мая 2010

Использовать SqlCeConnection

...