| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Базы данных под .NET > Переиначить путь к базе данных |
| Автор: Softaz 8.6.2006, 10:59 |
| Когда в VS2005 создается типизированный DataSet, то одним из шагов является задание строки подключения, которая хранится в Properties.Settings.settings "Берется" она от туда из автоматически сгенерированного студией кода, так что править этот код "вручную" - не выход. Как я понял, значения Settings только для чтения и изменять их в RunTime нельзя. А если я хочу изменить путь к базе, не перекомпилируя приложение? Как это сделать? Заранее спасибо. |
| Автор: -ser- 9.6.2006, 05:16 | ||
| понятное дело что на этапе создания типизированного DS студии надо конкретные параметры БД. а что тебе мешает написать в конфигурационный XML-файл (в тот же .exe.config) строку подключения, и при запуске приложения читать ее.
|
| Автор: Softaz 9.6.2006, 08:11 | ||||
Какой conn??? он же создает такой код:
И из других файлов я не нашел способа его изменить (если, конечно, public'ком не сделать). Вот в этом и вопрос. |
| Автор: Wanderer2019 9.6.2006, 09:37 |
| Хранение информации в отдельном файле... как, например, в конфигурационном XML-нике описывается http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vbcon/html/vboriintroductiontoapplicationsettingstorage.asp |
| Автор: Softaz 9.6.2006, 18:56 | ||
| Всем спасибо. Вопрос решен. Заинтересовался, а что это в строке подключения за |DataDirectory|. Нашел в MSDN ms-help://MS.MSDNQTR.v80.en/MS.MSDN.v80/MS.VisualStudio.v80.en/dv_fxdeploy/html/be5cbe12-6cb6-49c9-aa59-a1624e1eef3d.htm After your application has these permissions, it can access the Data Directory by using method calls on classes within the System.IO. You can obtain the path of the Data Directory within a Windows Forms application by using the GetData method to retrieve the value of the DataDirectory variable. This value is also available using the DataDirectory property defined on the CurrentDeployment property of ApplicationDeployment. You can also obtain the data directory path using the relevant variables on the Application class, such as LocalUserAppDataPath. И родился такой код:
|
| Автор: Хоббит 29.6.2006, 17:02 |
| а я ручками поменял в Settings и все ... если ты dataset создал и не трогает, то и код повторно не генериться |
| Автор: rulon 29.6.2006, 17:15 |
Если есть датасет, сгенерированный автоматически, значит должен быть биндинг навигатор и дата грид виев =)) , и ещё рядышком где то валяется табле адаптер, если это так - тогда можно сделать след. образом, как поступил когда то я: // передаём информацию о подключении в форму реадктирования // информации о диллерах DillerEditForm.main_infoTableAdapter.Connection.ConnectionString = this.ConnectionString; DillerEditForm.skidka_infoTableAdapter.Connection.ConnectionString = this.ConnectionString; А коннектион стринг та что this.ConnectionString ничто иное как наполовину вручную, наполовину автоматически сгенерированная исходя из информации предоставленной пользователем строка подключения: ConnectionString = "Data Source=" + this.cb_selectserver.Text.Trim() + ";" + "Initial Catalog=diller_info;" + "User ID=" + this.tb_user.Text.Trim() + ";" + "Password=" + this.tb_passwd.Text.Trim(); А то что в сурсах валяется строка подключени - так я уже и подзабыл как то в процессе разработки |
| Автор: mr.DUDA 29.6.2006, 17:25 |
| Softaz, другой хороший вариант решения проблемы - добавить классу датасета свою "нашлёпку" в виде partial class-файла, в котором объявляешь частичный класс с тем же именем, что у датасета, и выносишь _connection в виде открытого свойства. Либо делаешь свой конструктор, зачитывающий connection string после отработки base-конструктора. |
| Автор: arilou 30.6.2006, 23:24 | ||
Именно так мы и делаем |
| Автор: Хоббит 2.7.2006, 12:26 |
| Вот я тормозил ... а надо было то бобавить по 5 строчек к каждому классу |
| Автор: Softaz 3.7.2006, 08:01 |
| mr.DUDA, спасибо за "нашлепку" - хороший способ. |