none
Открытие файла БД без помощи визарда RRS feed

  • Вопрос

  • Приветствую.

    Использую SQL Server CE. В папке с программой лежит файл *.sdf. Таких БД в папке с программой может быть несколько. Поэтому мне надо при загрузке программы дать возможность пользователю самостоятельно выбрать файл БД и загрузить из него данные в dataGridView. При помощи визарда в VS2008 все получилось. Но как это сделать вручную - непонятно. На codeproject не удалось найти примера с самостоятельным открытием файла. Подскажите, пожалуйста, пример или ссылку.

    Спасибо.

    6 февраля 2013 г. 12:44

Ответы

  • файл с БД указывается в строке подключения, вы можете запрашивать у пользователя имя файла и после этого формировать строку подключения и использовать ее

    Data Source=" + (System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase) + "\\MyData.sdf;Persist Security Info=False;

    • Предложено в качестве ответа Abolmasov Dmitry 7 февраля 2013 г. 11:19
    • Помечено в качестве ответа Geokish 11 февраля 2013 г. 7:33
    6 февраля 2013 г. 13:29

Все ответы

  • SQL Compact Query Analyzer - Целый проект. Можно найти много чего.
    6 февраля 2013 г. 12:52
  • файл с БД указывается в строке подключения, вы можете запрашивать у пользователя имя файла и после этого формировать строку подключения и использовать ее

    Data Source=" + (System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase) + "\\MyData.sdf;Persist Security Info=False;

    • Предложено в качестве ответа Abolmasov Dmitry 7 февраля 2013 г. 11:19
    • Помечено в качестве ответа Geokish 11 февраля 2013 г. 7:33
    6 февраля 2013 г. 13:29
  • Если у вас одинаковые структуры баз данных, т.е. фактически копии одной, но содержащие разные данные - то рассмотрите вариант, который предложил Brash O,

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


    Для связи [mail]

    7 февраля 2013 г. 11:21
  • Приветствую, Дмитрий.

    Тут ситуация с базами такая: один файл базы - это записи за год работы заказчика. Иногда заказчику на следующий год может потребоваться добавить какие-то столбцы (ну, каприз вот такой у них). Поэтому и требуется открывать базу вручную. Кстати, базу решил делать на SQLite. Вот и встает вопрос, при загрузке разных файлов БД отображать уже в gridView столбцы, соответствующие выбранной базе, а не все столбцы (даже пустые).

    8 февраля 2013 г. 9:15
  • Тогда вы можете создать таблицу во всех базах в которых будете хранить данные о запросах и отображаемых полях и на основе этих данных при открытии генерировать представления
    8 февраля 2013 г. 9:23
  • DataGrid поддерживает автогенерацию столбцов, поэтому он будет отображать только те столбцы, которые есть в источнике данных. Ну а источник данных, если заполнять как SELECT * FROM table, то будут только те столбцы, которые реально есть в БД.


    Для связи [mail]

    8 февраля 2013 г. 9:24
  • Спасибо за ответ, а примера нет никакого? Наглядней было бы понятнее.

    Спасибо еще раз.

    8 февраля 2013 г. 9:27