2015-01-16 2 views
0

Я написал приложение C# Windows Form, которое должно связываться с База данных SQL Server. Я установил строки подключения, и программа отлично работает в моей системе, в то время как другая программа не работает при подключении к базе данных в других системах.Подключение к базе данных SQL в другой системе

Поскольку это приложение будет установлено на ПК пользователя. Как я могу решить эту проблему?

Последний способ, которым я пытался добавлял ConnectionString в конфигурации файла проекта:

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <configSections> 
    </configSections> 
<connectionStrings> 

    <add name="con" 
     connectionString="Data Source=2345pc037\SQLEXPRESS;Initial Catalog=prodDB;Integrated Security=true" 
     providerName="System.Data.SqlClient"/> 

</connectionStrings> 

    <startup> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> 
    </startup> 
</configuration> 

А вот C# код:

SqlConnection cs = new SqlConnection(); 
      strConn = string.Format("{0}",ConfigurationManager.ConnectionStrings["con"].ConnectionString); 
      cs.ConnectionString = strConn; 

Сообщение об ошибке указано, что либо имя экземпляра неверно, или SQL Server не разрешает удаленные подключения. Также: «ошибка: 28 - сервер не поддерживает запрошенный протокол».

Заранее благодарим за вашу помощь!

+0

Привет, добро пожаловать в SO. Ознакомьтесь с рекомендациями по заданию вопросов. Спросите: «Почему этот код не работает?» без кода или каких-либо пояснительных данных не относится к теме для SO. Мы можем помочь вам, если вы добавите важные детали. – theMayer

+0

В диспетчере конфигурации SQL включить TCP/IP. Затем разрешите приложения sqlbrowser и sqlserv на брандмауэре. (Чтобы найти правильный путь к файлам .exe, проверьте свойства менеджера конфигурации вашего экземпляра) – blfuentes

+1

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

ответ

1

Вот несколько вещей, которые вы можете проверить.

1) Чтобы проверить, разрешает ли сервер удаленное подключение, В SSMS щелкните правой кнопкой мыши на сервере, выберите свойства, слева, нажмите соединения, убедитесь, что выбрано Разрешить удаление подключений к этому серверу.

2) Открыта ли служба SQL Browser? Откройте диспетчер конфигурации сервера Sql и проверьте подтверждение для подтверждения.

3) Если на сервере настроен брандмауэр, вам необходимо настроить его, чтобы разрешить подключения к SQL Server (или временно отключить его для устранения неполадок), или вы получите эту ошибку.

4) Может ли клиентский ПК пинговать SQL-сервер. введите ping servername (т. е. ping 2345pc037) в окне команд.

5) Убедитесь, что клиент может подключиться к серверу. Вы можете сделать это, введя \ severname (т. Е. \ 2345pc037) в окне проводника.

6) В диспетчере конфигурации SQL Server, в разделе Конфигурация сети SQL Server, убедитесь, что протокол TCP/IP включен и настроен на прослушивание на правильный IP-адрес

7) Ваша строка подключения указывает на то, что вы используя интегрированную безопасность. Убедитесь, что пользователь на клиентском ПК имеет доступ к серверу. - это не то, что вызывает вашу проблему, но возможно, когда вы сможете подключиться.

+0

Большое спасибо @Spock за подробный комментарий. Но мне интересно, стоит ли клиент сидеть в автономной системе. Я имею в виду, как я могу заставить это работать с файлом базы данных, прикрепленным к приложению, на компьютере вне сети. – AlanD

+0

Все эти моменты относятся к сетевой установке сервера sql – Spock

+0

Действительно! большое спасибо! Но разве вы не имеете в виду, что эту строку соединения нельзя использовать для автономной системы? – AlanD

Смежные вопросы