| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Базы данных под .NET > Почему connection string это Application setting? |
| Автор: Dims 7.4.2009, 18:16 |
| Не пойму, почему Connection string -- это application setting? Я использую для работы с базой данных элемент проекта DataSet. Этот элемент позволяет визуально представить объекты базы данных и автоматически создаёт объекты и классы для доступа к ним. Информация хранится в файл XSD. После добавления любого объекта в дизайнер (например, хранимой процедуры), в его свойствах прописывается ссылка на определённый Connection string, который автоматически создаётся в настройках программы. То есть, DataSet вынуждает меня пользоваться именно таким типом для хранения строки соединения с базой. Далее, уже внутри Settings я вижу, что тип Connection string может быть только Application setting, то есть, его должно быть нельзя менять во время выполнения. Я, конечно, нашёл обходной путь и всё-таки меняю эту настройку, но мне непонятна логика. Разве логично, когда в программу жёстко зашито имя сервера, имя базы данных и другие параметры строки доступа? Ведь база данных не распространяется вместе с программой. Или распространяется? Ну даже если распространяется, то имя сервера всё равно не может быть таким же на всех компьютерах, где должна работать программа. Так почему же они сделали, чтобы было так? |
| Автор: Экскалупатор 7.4.2009, 20:45 |
| на сколько я знаю Connection string можно прописать жестко в код, а можно хранить в файле app.config и из него читать, ну по крайней мере так рекомендуют в книжках по ADO.NET и студия так делает. |
| Автор: Idsa 7.4.2009, 20:58 |
| Dims, может, я субъективен... но использование ORM мне видится лучшим (по сравнению с типизированным DataSet) во всех отношениях средством реализации DAL. |
| Автор: Экскалупатор 7.4.2009, 21:11 |
| вообще я на данный момент пишу приложение для роботы с БД Access и мне кажется в моем случае нету особой необходимости писать строку подключения в файл(что соответственно будет вызывать задержки на чтение) да и нерадивый "умный пользователь" может подумать что это какой то "ненужный файл" и сломается вообще все, так что я решил прописать все в код. и еще, перетаскивание на форму и доверяние студии создавать датасеты и все остальное это как то жестко. я когда первый раз с этим столкнулся чуть в обморок не упал, залез в листинг датасета(который студия создала), а там почти 6000(!) строк, потом переписал сам, только то что мне нужно, получилось строк ~200 и работать стало все намного быстрее. хотя, конечно, кому что ближе... нужно исходить из ситуации PashaPash, ну, я не хотел... |
| Автор: thomas 7.4.2009, 21:17 |
| Dims, Привет. Я не знаю почему они так делают. Когда создаешь типизированный DataSet, то можно в мастере не указывать сохранение connectionString в aap.config. Вместо этого пойти в свойства проекта и на вкладке Settings создать свойство типа String не для аппликации, а для пользователя. Вот это свойство уже можно редактировать в runTime. Или писать отдельный partial class с методом переопределения connectionString, который прописан в app.config. ЗЫ Код добавлю чуть позже с другого компа. (тут есть русский, а там студия и проекты Добавлено через 1 минуту и 59 секунд Кстати если создавать настройки для пользователя, а не для аппликации, то они прописываются в файл user.config для каждого пользователя отдельно. |
| Автор: Dims 8.4.2009, 12:19 | ||
А есть встроенные средства? |
| Автор: Idsa 8.4.2009, 13:01 |
Какая разница, встроенные или нет? Вопрос должен звучать так: "А есть достойные средства?" |
| Автор: thomas 8.4.2009, 13:48 | ||||||
Settings.Designer.vb
Overload in Settings.vb
myDataSet.Designer.vb
|