Соединение с базой данных в управлении сервером ASP.NET

Как следование на на от этого вопроса я создаю пользовательское управление сервером, которое будет помещено в Sharepoint основная страница 2010 года.

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

Поскольку это - управление сервером, я создаю его в dll, но я столкнулся с маленьким препятствием. Поскольку это должно соединиться с базой данных, я должен сохранить строку подключения где-нибудь (и иметь ее способный быть настроенным на основе целевой конфигурации (dev/test/prod).

Я предназначал пользователю Платформу Объекта как свой ORM, но я смущен как, туда, где строка подключения должна быть сохранена. В нормальном веб-приложении ASP.NET это входит в web.config, но это - управление сервером во внешнем DLL.

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

Править:
Прежде чем я отправлю щедрость, я попытался использовать встроенный XML-файл ресурса для содержания строки подключения и в то время как это работает, мне любопытно относительно того, если это - лучшая практика/a лучший путь?

1
задан Community 23 May 2017 в 10:33
поделиться

2 ответа

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

2
ответ дан 2 September 2019 в 22:30
поделиться

Строка подключения должна быть помещена в любое приложение, которое DLL использует для своего файла конфигурации. Поскольку это ASP.NET, подойдет файл web.config . Когда вы вызываете какие-либо методы из DLL, вы должны передать ему строку подключения как объект:

MyConnectionString
{
    get
    {
        return ConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString
    }
}

Использование :

using(SqlConnection conn = new SqlConnection(MyConnectionString))
{
    //other stuff here. Like making your command object, or passing it.. etc.)
}
0
ответ дан 2 September 2019 в 22:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: