Пишу .NET приложение на C#, которое будет использовать сервер базы данных в локальной сети. (скорее всего Sql server 2005 express)
Собственно, надо иметь возможность найти доступные серверы, выбрать нужный и подключиться к базе данных.
Лазия по форумам, я понял что это целая проблема. Но ведь практически все на практике сталкивались с такой задачей. Может быть уже написана какая то библиотека, которая например выводит конфигурационное окно, в котором настраивается подключение (как в SSMS например), и возвращает объект базового класса DbConnection? Ну или интерфейс? В конце концов, C# это же компонентно-ориентированный язык, неужели все пишут эти вещи с нуля?
Читал статью "Менеджер подключений к базам данных" в разделе статей, но этот компонент требует непременно 1-й dotnet. Что конечно неприемлемо.
Кто нибудь сталкивался с подобной проблемой?
Здравствуйте, vl690001x, Вы писали:
V>Пишу .NET приложение на C#, которое будет использовать сервер базы данных в локальной сети. (скорее всего Sql server 2005 express)
V>Собственно, надо иметь возможность найти доступные серверы, выбрать нужный и подключиться к базе данных.
V>Лазия по форумам, я понял что это целая проблема. Но ведь практически все на практике сталкивались с такой задачей. Может быть уже написана какая то библиотека, которая например выводит конфигурационное окно, в котором настраивается подключение (как в SSMS например), и возвращает объект базового класса DbConnection? Ну или интерфейс? В конце концов, C# это же компонентно-ориентированный язык, неужели все пишут эти вещи с нуля?
V>Читал статью "Менеджер подключений к базам данных" в разделе статей, но этот компонент требует непременно 1-й dotnet. Что конечно неприемлемо.
V>Кто нибудь сталкивался с подобной проблемой?
Нужно добавить библиотеку Microsoft OLE DB Service Component 1.0 Type Library
(это Interop.MSDASC.dll)
Ну и ADODB конечно, нотом запускаеш диалог настроек подключения и получаешь строку подключения.
private bool TryConnectSource()
{
string m_sGlobalConnectingStr = ...
if (!m_sGlobalConnectingStr.Contains("Provider"))
m_sGlobalConnectingStr = "Provider=SQLOLEDB.1;" + m_sGlobalConnectingStr;
ADODB.Connection adodbConnection = new ADODB.Connection();
adodbConnection.ConnectionString = m_sGlobalConnectingStr;
object connection = (object)adodbConnection;
MSDASC.DataLinks dlg = new MSDASC.DataLinks();
bool r = dlg.PromptEdit(ref connection);
m_sGlobalConnectingStr = adodbConnection.ConnectionString;
return r;
}