Как убедиться, что строка подключения для локальной машины - PullRequest
4 голосов
/ 15 сентября 2011

Я создаю клиентское приложение, которое подключается к серверу MS SQL через ADO.NET.Мне нужен пользователь, чтобы указать строку подключения для подключения к базе данных.Однако пользователи должны подключаться только к SQL Server Express, установленному на их компьютере.Мне нужно проверить строку подключения, чтобы определить, является ли она локальной или нет.

Очевидная идея - проверить, начинается ли CS с «.»или "local" или "* this_machine_name *".Но я не уверен, что это охватывает все возможные случаи.

Есть ли лучший способ выполнить такую ​​проверку?

UPD: я подразумеваю, что может быть более одного экземпляра SQLСервер на локальной машине, а имена экземпляров неизвестны.Также может быть безымянный экземпляр.

UPD2: На самом деле я только прошу пользователей указывать экземпляр SQLServer.

Спасибо.

Ответы [ 2 ]

0 голосов
/ 15 сентября 2011

Получите строку подключения, извлеките из нее имя хоста, передайте имя хоста в System.Net.Dns.GetHostEntry (String) и вуаля! Вы получаете экземпляр IPHostEntry, содержащий IP-адреса. Проверьте, есть ли 127.0.0.1.

0 голосов
/ 15 сентября 2011

Вместо того, чтобы проверять строку подключения, не будет ли проще запросить у пользователя имя базы данных, использовать ли интегрированную аутентификацию или нет и, если нет, имя пользователя и пароль, а затем создать собственную строку подключения, используя ' (локальный) 'как сервер?

...