C # Подключение к серверу SQL с именованным экземпляром? - PullRequest
2 голосов
/ 21 ноября 2008

Мой клиент сказал мне, что программа, которую я создал для них, не будет подключаться к именованному экземпляру SQL-сервера, у меня есть стандартный SQL-сервер без именованного экземпляра, поэтому мне интересно, как я могу это проверить. Строка подключения именованного экземпляра выглядит так, как показано ниже, может ли быть обратная косая черта в случае сбоя моего кода?

Драйвер = {Собственный клиент SQL}; Сервер = myServerName \ theInstanceName; База данных = myDataBase;

Мой код выглядит следующим образом:

sqlServer=s.Substring(keyword.Length,s.Length-keyword.Length);
FormODBC formODBC=new FormODBC(this);
formODBC.SetSqlServer(sqlServer,dbUsername,dbPassword,database,table);
formODBC.ReadData();

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

Спасибо

Ответы [ 6 ]

3 голосов
/ 21 ноября 2008

Также помните, что обратная косая черта является escape-символом в строках C #. Если имя вашего экземпляра содержится в строковой переменной, убедитесь, что вы делаете:

string server = "myServer\\myInstance";

или

string server = @"myServer\myInstance";
3 голосов
/ 21 ноября 2008

У нас есть SQL-серверы с именованными экземплярами. Примеры: myservername \ sql2005. Обратная косая черта в порядке, в соединительной строке имя сервера будет «myservername \ sql2005», работает на 100% нормально. Вы можете иметь «обычный экземпляр» на том же сервере, будет «myservername»

PS просто модульное тестирование вашей функции, после чего строка подключения возвращает "myservername \ sql2005".

1 голос
/ 21 ноября 2008

Ответ заключается в том, чтобы убедиться, что строка подключения настраиваема, и установить для нее что-то вроде:

источник данных = localhost \ msexpress; база данных = имя_базы; доверенное_соединение = истина;

0 голосов
/ 21 ноября 2008

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

Примечания:

  • Вы можете создать строку подключения, переименовав файл .txt в файл .udl и продолжая работать до тех пор, пока не сможете подключиться к своему / их серверу.
  • Ваш неименованный экземпляр действительно может быть доступен по имени - имени машины, на которой установлен SQL-сервер
0 голосов
/ 21 ноября 2008

Существует также случай выпуска SQL Express, когда имя MyServerName \ SQLEXPRESS. Это может сбить с толку некоторых людей, потому что они не подумают указать сервер таким образом.

0 голосов
/ 21 ноября 2008

Скотт, Рискуя заявить об очевидном, вы пытались настроить именованный экземпляр в своей собственной среде разработки? На самом деле я не знаю ответа на ваш вопрос, но лично я никогда не сталкивался с решением, когда тестирование сценария, который терпит неудачу напрямую, не помогло. Как минимум, вы должны быть в состоянии получить лучшую отладочную информацию о том, что именно не работает. Удачи в решении этой проблемы.

С уважением, Chris

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