![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| thomas |
|
||||
![]() Доцент... почти ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1385 Регистрация: 3.10.2006 Где: " Сказочное королевство" Репутация: 6 Всего: 65 |
Приветствую всех.
Для редактирования настроек программы использую PropertyGrid. Настройки прописаны в MyProject -->Settings. Там я указал только названия, а значения оставил пустыми. Студия создала app.config. Ну а настройки пользователя сохраняет в user.config. Соответственно сейчас действуют настройки Мои на моей машине. Так вот когда программу установят у пользователя на машине, первым делом ему будет предложено ввести настройки. Одна из которых это путь и имя БД. Все это я реализовал, изменив класс сгенерированный студией
Типа там разбил настройки по категориям, сделал кнопочки для выбора имени файла, выбора директории. Для этого написал пару классов. Осталась только одна проблема как в первое свойство Public ReadOnly Property MailingConnectionString() As String подсунуть значение свойства Public Property DataBase() As String вот в эту строку
У кого нибудь есть идеи? -------------------- Крепко жму горло, искренне ваш Thomas. (С)vingrad Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну! Проблемы негров шерифа не волнуют. |
||||
|
|||||
| SpaceSpace |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 366 Регистрация: 10.4.2007 Где: Самара Репутация: 2 Всего: 10 |
а не проще изменять конфиг файл? xml, тоесть?
-------------------- Репутация - самое ценное, что есть у человека. Зарабатывают годы, теряют за мгновение. 70-565 MCPD Enterprise 3.5 |
|||
|
||||
| thomas |
|
|||
![]() Доцент... почти ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1385 Регистрация: 3.10.2006 Где: " Сказочное королевство" Репутация: 6 Всего: 65 |
SpaceSpace,
Спасибо, очень ценный совет. И главное по существу. Название темы посмотрите Это сообщение отредактировал(а) thomas - 20.8.2007, 22:04 -------------------- Крепко жму горло, искренне ваш Thomas. (С)vingrad Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну! Проблемы негров шерифа не волнуют. |
|||
|
||||
| Idsa |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 2086 Регистрация: 5.12.2006 Где: Томск Репутация: 14 Всего: 62 |
Хм... Действительно, а что тебе мешает изменять ConfigurationManager["connnectionStringName"] в Runtime? |
|||
|
||||
| thomas |
|
||||||
![]() Доцент... почти ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1385 Регистрация: 3.10.2006 Где: " Сказочное королевство" Репутация: 6 Всего: 65 |
Idsa,
Приветствую.
Мешает то, что ConfigurationManager работает с такой формой app.config. Это FW1.1.
А я имею вот такой app.config
Как говориться, почувствуйте разницу. И потом сам подумай. Если пишеться "взрослая" программа, для стороннего использования, то не красиво предлагать пользователю искать using.config и изменять в нем connectionString.(Потому как настройки пишутся в этот файл, а не в app.config) Юзверь может и понятия не иметь, а что такое xml. Он может даже путь к папке и имя файла в ручную не умеет писать. Поэтому я предусмотрел возможность через диалог указывать директории для файлов и пусть с именем файла базы данных. Единственное что мне не нравиться с использованием Settings и My, так это то, что мелкомягкие не предусмотрели прямой возможности как-то апосредованно влиять на application settings в runtime. Приходиться искать обходные пути. Ведь сам посуди. Пользователь может и должен указать свою базу данных, которую он будет пользовать. А программа автоматом , на основании полученной инфы, исправляет connection string. Ведь пользователь по идее и не должен знать что, такое провайдер данных и вообще что такое connection string. -------------------- Крепко жму горло, искренне ваш Thomas. (С)vingrad Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну! Проблемы негров шерифа не волнуют. |
||||||
|
|||||||
| Jlekc |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 520 Регистрация: 10.2.2005 Где: Leopolis Репутация: 1 Всего: 4 |
а почему не использовать:
-------------------- |
|||
|
||||
| SpaceSpace |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 366 Регистрация: 10.4.2007 Где: Самара Репутация: 2 Всего: 10 |
thomas почитай про конфигурирование приложений. классы Configuration , ConfigurationManager хорошая книга - основы разработки приложений на платформе .NET Framework мелкосфты не такие идиоты, чтобы не давать возможноси делать свои конфиги Это сообщение отредактировал(а) SpaceSpace - 21.8.2007, 09:43 -------------------- Репутация - самое ценное, что есть у человека. Зарабатывают годы, теряют за мгновение. 70-565 MCPD Enterprise 3.5 |
|||
|
||||
| thomas |
|
||||||
![]() Доцент... почти ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1385 Регистрация: 3.10.2006 Где: " Сказочное королевство" Репутация: 6 Всего: 65 |
Короче, я так понимаю, никто ничего дельного подсказать не может.
Первый раз был вынужден создать в дизанере ДатаСет. Этот супер пупер ДатаСет должен иметь connection string. Он его поимел. Студия сохранила это connection string в app.config. Через My.Settings я могу его увидеть, к примеру в PropertyGrid. А дальше полная ... . В runtime этот ... connection string не установить. А при разработке программы, сохраняется тот который был установлен на машине разработчика. Следовательно пользователь программы может долго ждать когда ему программа, установленная на его машине, отобразит данные из супер пупер ДатаСета, с connection string машины разработчика. Вот почему я так ненавижу дизайнер.
Да, они не идиоты, они сделали My.Settings. Настройки категории пользователя(user) все просто замечательно. А вот категория application - попробуй, и ты увидишь сам какая это ... . ЗЫ SpaceSpace,
В первом FW это пространство имен и обьект. Во втором есть такие классы, но они работают "по старинке" как в первом FW вот с таким файлом app.config (configurationmanager)
А отсюда ты хоть ... , но connection string супер пупер ДатаСету не подсунешь. А проблема только с этим. КАК подсунуть нужный connection string ДатаСету? Это сообщение отредактировал(а) thomas - 21.8.2007, 22:29 -------------------- Крепко жму горло, искренне ваш Thomas. (С)vingrad Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну! Проблемы негров шерифа не волнуют. |
||||||
|
|||||||
| thomas |
|
||||
![]() Доцент... почти ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1385 Регистрация: 3.10.2006 Где: " Сказочное королевство" Репутация: 6 Всего: 65 |
Я конечно не Магомед, а Microsoft не гора. Но
Если гора не идет к Магомеду, то ... пошла на фиг, такая гора. В общем так, после долгих поисков я решил просто проигнорировать connection string который создал дизайнер ДатаСета. Как говориться "забил болт на это дело". Сначала в Settings.Designer.vb дописал функцию
А потом в MyDataSet.Designer.vb заменил строку, сгенерированную студией, на мою
Соответственно этот супер пупер ДатаСет получает connection string основанный на базе данных, которую указал пользователь при первом старте программы. Может не самое корректное и эстетичное решение -------------------- Крепко жму горло, искренне ваш Thomas. (С)vingrad Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну! Проблемы негров шерифа не волнуют. |
||||
|
|||||
| Jlekc |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 520 Регистрация: 10.2.2005 Где: Leopolis Репутация: 1 Всего: 4 |
thomas, всеже я не понял почему ты решил что невозможно изменить app.config на лету, используя средства M$
Исходный конфиг:
Полученый конфиг:
и пару строк кода:
-------------------- |
||||||
|
|||||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |