powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Как грамотно коннектится к базе данных ?
21 сообщений из 21, страница 1 из 1
Как грамотно коннектится к базе данных ?
    #34645243
saruman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый вечер уважаемые гуру !

vs2005. Есть типизированный DataSet (xsd), в нем накиданы в режиме дизайнера "TableAdapter"-ы,
есть куча форм связных с этим датасетом, сконфигурированы гриды...
Когда все все это конфигурировалось, связь с базой шла под моим логинм на sql-сервере.
А задача запрашивать у пользователя логин и пароль(на sql-сервер) при старте приложения и коннектися уже под ним.
Самое простое — сформировать новую строчку соединения и вручную подсовывать ее каждому "TableAdapter"-у.
Но сдается мне что это неправильно... да и TableAdapter-ов много, и датасет ни один.
Была мысль заменить Properties.Settings.Default.MyConnectionString , но она readonly
Как правильно поступить ?

Спасибо !
...
Рейтинг: 0 / 0
Как грамотно коннектится к базе данных ?
    #34645659
Bigheadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спросить параметры подключения у юзера. Сформировать строку подключения. Сохранить ее в в каком-либо объекте доступном для всех адаптеров (например, public-свойство статического класса).
...
Рейтинг: 0 / 0
Как грамотно коннектится к базе данных ?
    #34661197
saruman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это все понятно !
А дальше ?
мне же придется в run-time подсовывать это свойтво каждому "TableAdapter"-у,
а если будут добавляться новые ? нужно писать много лишнего кода.
...
Рейтинг: 0 / 0
Как грамотно коннектится к базе данных ?
    #34661875
Кхе
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sarumanнужно писать много лишнего кода.
Лишнего писать не нужно, пишите по делу.
...
Рейтинг: 0 / 0
Как грамотно коннектится к базе данных ?
    #34662936
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у тебя выход один :) плохой и не удобный. скорее это вход , только в жо..

TABLETableAdapter.Connection.ConnectionString = GLBStrConnect

и так поступаешь со всеми адаптерами при загрузке программы.
GLBStrConnect формируешь как тебе надо- это строка подключения.

лучше прочитай книжку, о том как надо.а то ты будешь часто нырять в одно место :)
...
Рейтинг: 0 / 0
Как грамотно коннектится к базе данных ?
    #34664124
saruman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Этот способ я знаю.
И спрашиваю: КАК надо ?
Книжки я читал, там все ручками делают, примерно как вы предложили.
А если объектов доступа к данным сотни ? Тоже ручками ?
...
Рейтинг: 0 / 0
Как грамотно коннектится к базе данных ?
    #34664431
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так как я предложил уже переделывают, но не делают.это не способ как делать правильно.

у вас сотни объектов по какой причине? изза не удачного использования мастеров?

или вы мне предлагаете ответить на вопрос, как лучше вам сделать? я не смог бы на него ответить, потому что времени нету, и вы деталей не показали.


как идея, это сделать класс с методами типа shared, которые отвечают за изымание данных из базы.

точнее не могу.
...
Рейтинг: 0 / 0
Как грамотно коннектится к базе данных ?
    #34664530
saruman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
База данных имеет свыше ста хранимых процедур которые возвращают _разные_ данные.
Я хочу имет обертки (в качестве Table-adapter-ов) этих процедур в своем проекте.
И я спрашивал как мне у всех их подменить Connection string. Если вы не поняли это из моего первого сообщения, то уж извините :(
...
Рейтинг: 0 / 0
Как грамотно коннектится к базе данных ?
    #34664698
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
уважаемый, я ж
привел код выше

Код: plaintext
1.
dim GLBStrConnect as string
TABLETableAdapter.Connection.ConnectionString = GLBStrConnect

не приходило мысль, что нужна универсальная обертка для любой процедуры?
...
Рейтинг: 0 / 0
Как грамотно коннектится к базе данных ?
    #34664704
хламист
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sarumanБыла мысль заменить Properties.Settings.Default.MyConnectionString , но она readonly
Спасибо !
а если дописать отдельный метод-сеттер типа

public void SetMyConnectionString(string myConnectionString)
{
this["MyConnectionString"] = myConnectionString
}
...
Рейтинг: 0 / 0
Как грамотно коннектится к базе данных ?
    #34664742
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
и зачем их иметь все сразу?
а потом будете писать, управление всем этим скопищем?

зачем столько абстракций над sql командами.попроще чтоли подход надо найти.

и откройте код, в котором происходит сцепление sp сервера с tableadapter.
...
Рейтинг: 0 / 0
Как грамотно коннектится к базе данных ?
    #34664760
saruman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AlexeiKуважаемый, я ж
привел код выше

Код: plaintext
1.
TABLETableAdapter.Connection.ConnectionString = GLBStrConnect

не приходило мысль, что нужна универсальная обертка для любой процедуры?

и повторять этот код столько раз, сколько у меня TABLETableAdapter-ов ? а их будет много....
...
Рейтинг: 0 / 0
Как грамотно коннектится к базе данных ?
    #34664835
AlexeiK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а если вместо GLBStrConnect взять какой нибудь объект? или функцию?

вам придеться отрицать многие варианты,которые вам предложат, потому что никакой не исправит ситуацию кординально.
...
Рейтинг: 0 / 0
Как грамотно коннектится к базе данных ?
    #34664993
Глас народа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
saruman AlexeiKуважаемый, я ж
привел код выше

Код: plaintext
1.
TABLETableAdapter.Connection.ConnectionString = GLBStrConnect

не приходило мысль, что нужна универсальная обертка для любой процедуры?

и повторять этот код столько раз, сколько у меня TABLETableAdapter-ов ? а их будет много....


Попробуйте так: В окне дизайнера Settings нажмите "View Code" - студия создаст файл Settings.cs -- вторая часть partial-класса Settings.
А в нем пропишите вот такого типа код: (если SQL server, конечно :) )

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
   protected override void OnSettingsLoaded(object sender, SettingsLoadedEventArgs e)
        {
            SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder();
            builder.ConnectionString = (string)this["MainConnectionString"];
            builder.UserID = "sa";
            builder.Password = "123";

            this["MainConnectionString"] = builder.ConnectionString;
            base.OnSettingsLoaded(sender, e);
        }
...
Рейтинг: 0 / 0
Как грамотно коннектится к базе данных ?
    #34665117
saruman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гениально!
Это именно то что было нужно, СПАСИБО !!!!
...
Рейтинг: 0 / 0
Как грамотно коннектится к базе данных ?
    #34666742
А что делать с этим?
//------------------------------------------------------------------------------
// <auto-generated>
// Этот код создан программой.
// Исполняемая версия:2.0.50727.42
//
// Изменения в этом файле могут привести к неправильной работе и будут потеряны в случае
// повторной генерации кода.
// </auto-generated>
//------------------------------------------------------------------------------
...
Рейтинг: 0 / 0
Как грамотно коннектится к базе данных ?
    #34666801
Решилось вынесением partial части класса в отдельный файл. Спасибо ОГРОМНОЕ "Глас народа".
Не мог найти достойного решения уже оченьпродолжительное время.
...
Рейтинг: 0 / 0
Как грамотно коннектится к базе данных ?
    #34666896
Нашел еще простой способ открываем Settings не обычным редактором, а редактором исходного кода, меняем Scope="Application" на Scope="User", перекомпилируем, у данного свойства появляется setter и соответсвенно возможность менять значение в рантайме (в любой момент).
...
Рейтинг: 0 / 0
Как грамотно коннектится к базе данных ?
    #34667107
Глас народа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДмитрийДроздНашел еще простой способ открываем Settings не обычным редактором, а редактором исходного кода, меняем Scope="Application" на Scope="User", перекомпилируем, у данного свойства появляется setter и соответсвенно возможность менять значение в рантайме (в любой момент).

Не очень хорошо. :) Надо каждый раз при выходе очищать значение connection string, а то строка с паролем будет прописываться куда-то в ApplicationSettings. Ну а при аварийном выходе так там и останется...
...
Рейтинг: 0 / 0
Как грамотно коннектится к базе данных ?
    #34667292
Никто не заcтавляет делать Save сеттингов, в противном случае они не сохраняются.
...
Рейтинг: 0 / 0
Как грамотно коннектится к базе данных ?
    #34667462
Глас народа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ДмитрийДроздНикто не заcтавляет делать Save сеттингов, в противном случае они не сохраняются.

Точно! Похоже у меня начинается паранойя на почве безопасности :)
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Как грамотно коннектится к базе данных ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]