Получение ошибки времени выполнения при попытке вставить значения в локальную базу данных [duplicate]

Как уже упоминалось в парах других, нет способа стилизовать родительский элемент элемента, используя только CSS, но следующее работает с jQuery :

$("a.active").parents('li').css("property", "value");

282
задан one noa 29 November 2016 в 13:23
поделиться

30 ответов

Я думаю, что вы используете Express Edition

Попробуйте добавить «\ SQLEXPRESS» к имени вашего сервера

, например. «MY-SERVER \ SQLEXPRESS»

9
ответ дан Abdo 18 August 2018 в 08:10
поделиться

Эта ошибка возникает, когда ваш экземпляр сервера sql stopped.

Перейдите ко всем программам> SQL Server> Инструменты настройки> МЕНЕДЖЕР КОНФИГУРАЦИИ SQL SERVER

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

этот ответ очень поздний (но лучше поздно, чем никогда;)

1
ответ дан Alex 18 August 2018 в 08:10
поделиться
  • 1
    Это был правильный ответ для меня. Спасибо. – Adam Joseph Looze 18 August 2016 в 16:57

Я решаю эту проблему, открыв Службы, затем запустив службу Sql Server (Sqlexpress).

66
ответ дан Anik Saha 18 August 2018 в 08:10
поделиться
  • 1
    Я видел, где служба Windows SQL Server была настроена на ручной тип запуска, поэтому она не перезагружалась при перезагрузке. Он должен быть установлен на «Автоматически». – robertburke 7 October 2016 в 16:22
  • 2
    Это именно то, что я сделал, «Мой статус был запущен» и «StartupType» был автоматическим, но все же я столкнулся с проблемой, поэтому я использовал сервисы из окна «Тип запуска» services.msc, после чего я щелкнул правой кнопкой мыши SQL Server (SQL EXPRESS) для контекстного меню и просто остановитесь и снова запустите службу и отлично справитесь со мной, надеюсь. – stom 25 October 2016 в 07:40
  • 3
    Это сработало и для меня! – Annalisa 25 January 2017 в 20:07
  • 4
    Большое спасибо. работал: D – AVI 28 December 2017 в 06:38
  • 5

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

Произошло со мной по крайней мере.

3
ответ дан Arjmand 18 August 2018 в 08:10
поделиться
  • 1
    Случилось и со мной. Должен был проверить это перед проверкой попытки диагностики брандмауэра. У меня была правильная строка соединения, но я запускал неправильный проект в решении ... – VSO 8 August 2016 в 14:22

Если вы вдруг столкнулись с этой ошибкой, произнесите в рабочей среде и ничего не изменилось, попробуйте следующие 4 элемента в следующем порядке, чтобы узнать, исправляется ли это.

  1. перезапустить службу сервера sql .
  2. перезапустить службу (скажем, IIS), вызывающую сервер sql. (проблема, вероятно, здесь, если время между запуском вызова службы на SQL-сервер и время, в течение которого вы получаете ошибку ответа, очень короткое (около одной или двух секунд).
  3. перезапустить сервер Сервер sql включен.
  4. перезапускает сервер, на который включена вызывающая служба.
2
ответ дан Barka 18 August 2018 в 08:10
поделиться

Сводка

Чтобы устранить эту проблему, обнаруженную во время работы локального приложения и удаленной базы данных , используйте SQL Server Configuration Manager для добавления псевдонима для удаленной базы данных.

Подробности

Недавно я столкнулся с этой проблемой при переходе с Windows 7 на ноутбук с Windows 10. Я запускал локальную среду разработки и среды выполнения, обращаясь к нашей базе данных Dev на удаленном сервере. Мы получаем доступ к базе данных Dev через настройку псевдонима сервера с помощью утилиты клиентской сети SQL Server (cliconfg.exe). Убедившись, что псевдоним был правильно настроен как в 64-битной версии 32-разрядной версии утилиты, так и в том, что сервер базы данных был доступен с нового ноутбука через SSMS, я все же получил ошибку, обнаруженную OP (а не IP-адресом OP, курс).

Для добавления псевдонима для удаленного сервера базы данных Dev необходимо было использовать диспетчер конфигурации SQL Server. Исправлены ошибки.

3
ответ дан Bill Needels 18 August 2018 в 08:10
поделиться

Сервер MS SQL 2014 в Windows 7

1) перейдите к поисковой программе и введите (диспетчер конфигурации Sql server 2014)

2), затем нажмите «Служба сервера Sql» на

3) проверьте свой экземпляр состояния службы sql-сервера (остановитесь или запустите)

4) если он остановлен, пожалуйста, измените выполняемый статус и войдите в свой sql-файл серверная студия управления 2014

2
ответ дан Chamara 18 August 2018 в 08:10
поделиться

Почему эта ошибка настолько боресома и шумна, просто потому, что она может возникать в различной ситуации.

Я сделал здесь все вышеперечисленные ошибки и все еще сосал. Поэтому убедитесь, что вы сделали то же самое, что и я, прежде чем смотреть вниз.

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

Решение моей проблемы:

  • Проверьте мою функцию sqlconnection

  • Нажмите, чтобы посмотреть его конфигурацию

  • Новое соединение

  • Выберите имя сервера ur

Он работает для меня с размышлением о том, что именно происходит в процессе соединения. Надеюсь, что мое мышление приведет вас к ошибке ур.

4
ответ дан Chase07 18 August 2018 в 08:10
поделиться
  • 1
    Это помогло мне обнаружить, что мне нужно было удалить номер порта для строки подключения LocalDB при использовании Entity Framework. – ryanwebjackson 26 June 2018 в 21:37

Это решение также решает как сетевую ошибку, так и службу за сервером sql

. Я ответил на аналогичный вопрос здесь, вам нужно указать другой open Run type-> services.msc - под услугами -> sort by stopped, который вы увидите куча остановленных служб SQL Right click and start

Чтобы начать - есть 4 проблемы, которые могут вызвать ошибки common LocalDb SqlExpress Sql Server [41], прежде чем вы начнете необходимо переименовать v11 или v12 в (localdb) \ mssqllocaldb

Я обнаружил, что самый простой должен сделать следующее: я приложил pics и шаги для помощи.

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

  1. cmd> Sqllocaldb.exe i
  2. cmd> Sqllocaldb.exe s "whicheverVersionYouWantFromListBefore", если этот шаг завершился неудачно, вы можете удалить с помощью опции d cmd> Sqllocaldb .exe d "someDb"
  3. cmd> Sqllocaldb.exe c "createSomeNewDbIfyouWantDb"
  4. cmd> Sqllocaldb.exe start "createSomeNewDbIfyouWantDb"

63
ответ дан Community 18 August 2018 в 08:10
поделиться

Эта ошибка в основном возникла, когда SQL-служба остановлена. Вам нужно перезапустить службу. Чтобы перейти в это окно, вам необходимо выполнить поиск таких сервисов, как this-

Затем Найдите SQLSERVER (MSSQLSERVER) и перезапустите службу.

Надеюсь, что это сработает.

9
ответ дан Debendra Dash 18 August 2018 в 08:10
поделиться

Сделав все, упомянутое здесь: http://blog.sqlauthority.com/2009/05/21/sql-server-fix-error-provider-named-pipes-provider-error-40-could- not-open-a-connection-to-sql-server-microsoft-sql-server-error / Все еще не работало для меня.

Шаги работали для меня:

Start > Run > cmd > sqlcmd -L

Он предложит вам имя сервера. Убедитесь, что имя этого сервера совпадает с именем, к которому вы пытаетесь подключиться, в поле CONNECT TO SERVER студии управления SQL.

Я сделал эту глупую ошибку, я продолжаю использовать MSSQLSERVER, используя это имя сервера.

Надеюсь, это поможет людям, которые делают глупую ошибку, как я.

Спасибо.

5
ответ дан Denn 18 August 2018 в 08:10
поделиться

Если ни одно из вышеперечисленных решений не работает (ничего не работает для меня), то просто RESTART ваш компьютер, и вы сможете подключиться к вашему серверу sql (localhost).

10
ответ дан eugen sunic 18 August 2018 в 08:10
поделиться
  • 1
    Причина, по которой это будет работать, заключается в том, что вы только что установили Sql Server и не перезапустили компьютер по мере установки. Итак, сделайте это, и тогда будут созданы службы и вся необходимая конфигурация, которая отсутствует. – Sterling Diaz 30 April 2016 в 01:00

Я использую SQL Server 2016 и Window 10.

Прежде всего, нужно разрешить удаленное подключение к SQL Сервер. Я сделал, чтобы ввести sqlservermanager13.msc в меню «Пуск», чтобы открыть диспетчер конфигурации SQL Server. Убедитесь, что статус TCP / IP включен.

Проверьте номер своего TCP-порта, дважды щелкнув имя протокола TCP / IP. Обычно это по умолчанию 1433.

Следующие процедуры настраивают брандмауэр Windows с помощью оснастки «Брандмауэр Windows с расширенной безопасностью» Microsoft Management Console (MMC) -в. Брандмауэр Windows с расширенной безопасностью настраивает только текущий профиль.

Чтобы открыть порт в брандмауэре Windows для доступа к TCP

  1. В меню «Пуск» выберите «Выполнить», введите WF.msc и нажмите «ОК».
  2. В брандмауэре Windows с расширенной безопасностью на левой панели щелкните правой кнопкой мыши Правила входящих сообщений и выберите «Новое правило» на панели действий.
  3. В диалоговом окне «Тип правила» выберите Порт, а затем нажмите «Далее».
  4. В диалоговом окне «Протокол и порты» выберите TCP. Выберите «Определенные локальные порты», а затем введите номер порта экземпляра Database Engine, например 1433 для экземпляра по умолчанию. Нажмите «Далее».
  5. В диалоговом окне «Действие» выберите «Разрешить подключение» и нажмите «Далее».
  6. В диалоговом окне «Профиль» выберите любые профили, описывающие среду подключения к компьютеру, когда вы хотите подключиться к механизму базы данных, а затем нажмите «Далее».
  7. В диалоговом окне «Имя» введите имя и описание этого правила и нажмите «Готово».

Еще одна вещь, которую нужно настроить.

Чтобы открыть доступ к SQL Server при использовании динамических портов

  1. В меню «Пуск» выберите «Выполнить», введите «WF» .msc, а затем нажмите «ОК».
  2. В брандмауэре Windows с расширенной безопасностью на левой панели щелкните правой кнопкой мыши «Правила входящих» и выберите «Новое правило» на панели действий.
  3. В диалоговом окне «Тип правила» выберите «Программа» и нажмите «Далее».
  4. В диалоговом окне «Программа» выберите «Путь к этой программе». Нажмите «Обзор» и перейдите к экземпляру SQL Server, к которому вы хотите получить доступ через брандмауэр, и нажмите «Открыть». По умолчанию SQL Server находится в папке C: \ Program Files \ Microsoft SQL Server \ MSSQL13.MSSQLSERVER \ MSSQL \ Binn \ Sqlservr.exe. Нажмите «Далее».
  5. В диалоговом окне «Действие» выберите «Разрешить подключение» и нажмите «Далее».
  6. В диалоговом окне «Профиль» выберите все профили, описывающие среду подключения к компьютеру, когда вы хотите подключиться к движку базы данных и нажмите «Далее».
  7. В диалоговом окне «Имя» введите имя и описание этого правила и нажмите «Готово».

Взгляните на Microsoft doucmentation Настройте брандмауэр Windows для доступа к базе данных

4
ответ дан Fred 18 August 2018 в 08:10
поделиться

Нажмите window + R (Run window Open) и в окне окна запуска "services.msc", а новые службы откроют службу поиска SQL SERVER(SQLEXPRESS) и повторите попытку, это работает для меня. Надеюсь, что это тоже работает для вас.

12
ответ дан Hafiz Asad 18 August 2018 в 08:10
поделиться
  • 1
    Ответ был предоставлен ранее. Не получайте повода, повторите это снова – Anik Saha 11 April 2016 в 07:39
  • 2
    приятель сталкивается с той же проблемой, но я не знаю, горячие окна открытых сервисов, то я нашел способ, и я думал поделиться с людьми – Hafiz Asad 11 April 2016 в 11:28

Я получил решение для меня:

Откройте «Менеджер конфигурации SQL Server»

Теперь нажмите «Конфигурация сети SQL Server» и нажмите «Протоколы для ] Имя "

Щелкните правой кнопкой мыши на« TCP / IP »(убедитесь, что оно включено) Нажмите« Свойства »

Теперь выберите вкладку« IP-адреса »- и-Go к последней записи «IP All»

Введите «TCP-порт» 1433.

Теперь перезапустите «SQL Server .Name». используя «services.msc» (winKey + r)

Он будет работать ...

89
ответ дан Irshad Khan 18 August 2018 в 08:10
поделиться
  • 1
    Не работал для меня. – RayLoveless 29 March 2016 в 20:48
  • 2
    В SQL Server 2014 используйте (localdb) \ mssqllocaldb вместо (localdb) \ v11.0 – Shalva Avanashvili 26 May 2016 в 04:48
  • 3
    Копия вставила мой комментарий (который был опубликован 24 февраля 2015 года - за 7 месяцев до вашего поста) в качестве ответа, не давая мне кредитов! :П – user1336087 28 July 2016 в 15:59
  • 4
    Работает для меня, спасибо. – jigar 6 April 2017 в 09:19
  • 5
    Это сработало. Я не смог подключиться к SQL Server 2016. Сделал эти изменения, и это сработало! Благодарю. – Ankur 27 August 2017 в 16:43

У меня возникла одна и та же проблема, и проблема заключалась в том, что у меня было несколько проектов в решении (Web и Droid), и хотя Default project был выбран в Package Manager Console, он использовал строку подключения из Droid project:

PM> update-database -Verbose
Using StartUp project 'Droid'. <-- DROID
Using NuGet project 'Web'. <-- WEB
Specify the '-Verbose' flag to view the SQL statements being applied to the target database.
<!-- BAD TARGET DATABASE -->
Target database is: 'DefaultConnection' (DataSource: .\SQLEXPRESS, Provider: System.Data.SqlClient, Origin: Convention).
System.Data.SqlClient.SqlException (0x80131904): A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)
   [REMOVED TEXT]
ClientConnectionId:00000000-0000-0000-0000-000000000000
Error Number:-1,State:0,Class:20
A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 26 - Error Locating Server/Instance Specified)

После установки Startup Project на Web и Default Project в Package Manger Console я получил его для работы.

4
ответ дан Jefecito 18 August 2018 в 08:10
поделиться

Я попробовал все другие ответы по этому вопросу, и некоторые, если не все, вероятно, сыграли определенную роль в том, чтобы заставить это работать для меня, но я все еще не мог подключиться к БД удаленно. Я использовал SQL Server на Azure VM.

В конце концов я вспомнил, что VM имеет конечные точки, которые контролируются прокси-сервером Azure, поэтому я пошел на Azure Portal и добавил 1433 в качестве доступной конечной точки и я мог подключиться к моему экземпляру SQL.

Надеюсь, это поможет кому-то, кто попробовал все остальные ответы и до сих пор не повезло!

2
ответ дан John 18 August 2018 в 08:10
поделиться

Я перешел с рабочего ноутбука на Windows 7 на рабочий ноутбук в Windows 10. Я успешно использовал SSMS2016 в Windows 7.

Эта же проблема была применена с использованием SSMS2012 или SSMS2016. Мой доступ к серверам с 10 окнами, использующими проверку подлинности Windows, остался прежним. Я могу проверить это с другого сервера. Однако 2 из 10 серверов не будут подключаться из моего ноутбука. Оба были ms sql server 9, но я мог подключиться к другим базам данных sql server 9.

Решение заключалось в том, чтобы добавить правило брандмауэра (используя брандмауэр Windows с повышенной безопасностью).

Создать Входящее правило для каждой SSMS, например, C: \ Program Files (x86) \ Microsoft SQL Server \ 130 \ Tools \ Binn \ ManagementStudio \ Ssms.exe

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


Ошибка msg (pre брандмауэр-правило) "При установлении соединения с SQL Server возникла связанная с сетью или конкретная ошибка экземпляра. сервер не найден или недоступен. Убедитесь, что имя экземпляра верное и что SQL Server настроен на разрешение удаленных подключений. (поставщик: сетевые интерфейсы SQL, ошибка: 26 - ошибка определения местоположения сервера / экземпляра) (.Net SqlClient Data Provider) "

2
ответ дан johnc 18 August 2018 в 08:10
поделиться

Если вы сталкиваетесь с этим при отладке в Visual Studio, убедитесь, что путь сборки проекта указывает на локальный диск или выполните эти шаги , чтобы предоставить разрешения для сетевой папки.

1
ответ дан Kevin D. 18 August 2018 в 08:10
поделиться

Мне нужно запустить службу браузера SQL Server в диспетчере конфигурации SQL Server. Установка не может обнаружить вновь созданный сервис без этого.

3
ответ дан MarkosyanArtur 18 August 2018 в 08:10
поделиться
  • 1
    Я еще не там, но я приближаюсь. В Visual Studio после этого также отключите и снова подключите, получив ту же самую ошибку, но теперь по крайней мере из-за VS2015 я не могу создавать таблицы, а базы данных я создаю шов для запуска сейчас. (ea, без темного креста над ними) – user3800527 13 October 2016 в 12:28
  • 2
    примечание после вашей команды, это привело к имени сервера на локальном компьютере. Начало & gt; Выполнить & gt; cmd & gt; sqlcmd -L – user3800527 13 October 2016 в 12:45

Моя проблема началась, когда я попытался изменить сервер из IIS Express на локальный IIS (при использовании LocalDB).

Я использовал LocalDB (для целей dev), и когда я перешел из Local IIS в IIS Express, Visual Studio переключила мой источник данных с Data Source = (LocalDb) \ MSSQLLocalDB на Источник данных =. \ SQLEXPRESS

Неправильная строка соединения

<add name="DefaultConnection" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\SurveyTestsDB.mdf;Initial Catalog=SurveyTestsDB;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient" />

Правильная строка соединения

<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\SurveyTestsDB.mdf;Initial Catalog=SurveyTestsDB;Integrated Security=True" providerName="System.Data.SqlClient" />

Надеюсь, что это поможет кому-то.

1
ответ дан megamaiku 18 August 2018 в 08:10
поделиться
  • 1
    Также не делайте глупой ошибки использования / вместо \ в строке соединения. – andrew pate 9 March 2017 в 15:42

Вы можете протестировать следующие методы.

  • a Проверьте строку подключения проекта.
  • b Перейдите в сервисы и перезапустите экземпляр SQLServer.
  • c Откройте «Диспетчер конфигурации SQLServer». На левой панели выберите «Конфигурация сети SQLServer» и расширьте его. Выберите «Протоколы для MSSQLServer». На правой панели dbl нажмите «TCP / IP». В «Протоколе» на вкладке «Включено» на «Да». На вкладке «IP-адреса» прокрутите вниз. В «IPAll» установите «TCP-порт» на 1433
  • . d Откройте «Брандмауэр с расширенной безопасностью». В правой tab выберите «Inbound Rules»

. В средней вкладке найдите запись, в которой «локальный порт» равен 1433. Если вы не можете найти ее, попробуйте создать ее со следующими уровнями

  • В меню «Пуск» выберите «Выполнить», введите «WF.msc» и нажмите «ОК»
  • . В левой панели нажмите «Брандмауэр Windows с повышенной безопасностью»
  • На правой панели щелкните правой кнопкой мыши «Входящие правила», а затем нажмите «Новое правило»
  • . В диалоговом окне «Тип правила» выберите «Порт» и нажмите «Далее»
  • В диалоговом окне «Протокол и порты» выберите «TCP» и выберите «Конкретные локальные порты», затем введите номер порта 1433, нажмите «Далее»
  • . В диалоговом окне «Действие» выберите «Разрешить подключение», а затем нажмите «Далее»
  • . В диалоговом окне «Профиль» проверьте домен , Private и Public, затем щелкните Next
  • В диалоговом окне «Имя» введите «SQL 1433 Port» и описание описания для описания. Затем нажмите «Готово»
  1. . Затем на средней вкладке дважды щелкните найденный элемент (экземпляр) или созданный вами элемент «SQL 1433 Port».
  2. Выберите вкладку «Область» в открывшемся диалоговом окне (Свойства SQL Server)
  3. На локальном ПК Перейдите на google.com в свой браузер и выполните поиск «Мой IP».
  4. затем копия вашего «IP»
  5. . Перейдите на удаленный сервер и в диалоговом окне «Свойства SQL Server» на вкладке «Область» в «Удаленный IP-адрес» выберите параметр «Эти IP-адреса» и нажмите кнопку «Добавить»
  6. . В открывшемся диалоговом окне (IP-адрес) выберите «Этот IP-адрес или подсеть» и вставьте свой «IP», нажмите кнопку «ОК».
3
ответ дан MohammadSoori 18 August 2018 в 08:10
поделиться

Кажется, что ваш экземпляр localdb не запущен. Чтобы запустить его при запуске компьютера, добавьте в свой файл меню «Пуск» \ «Автозагрузка» BAT со следующей строкой

sqllocaldb start name_of_instance

, где name_of_instance - это имя экземпляра localdb, который вы хотите запустить. Вы можете просмотреть доступные экземпляры в командной строке, используя sqllocaldb i.

, например. Если вы используете SQL Server Management Studio и подключаетесь к названию сервера (localdb)\v11.0, ваш BAT-файл будет выглядеть как

sqllocaldb start v11.0
1
ответ дан Ondrej 18 August 2018 в 08:10
поделиться

Наряду с попыткой всего, что предлагает Teo Chuen Wei Bryan, убедитесь, что вы также ссылаетесь на правильное имя Server / Instance в строке подключения.

Если вы используете краткую форму имени хоста / экземпляра на сервере базы данных или в файле web.config, убедитесь, что вы используете полное доменное имя (FQDN) / экземпляр

Кроме того, чтобы проверить подключение с сервера, на котором нет клиента SQL-сервера,

-> создать текстовый файл и изменить его расширение файла на .udl

-> Щелкните правой кнопкой мыши файл, и вы увидите вкладку подключения.

-> Введите имя сервера и зарегистрируйте информацию для проверки соединения с сервером базы данных.

Надеюсь, это поможет.

2
ответ дан SanthoshM 18 August 2018 в 08:10
поделиться

Когда я столкнулся с этой ошибкой в ​​Visual Studio,

«При установлении соединения с SQL Server возникла связанная с сетью или конкретная ошибка экземпляра. Сервер не найден или не был доступен. Проверьте правильность имени экземпляра и настройте SQL Server для удаленного подключения. (поставщик: поставщик Named Pipes, ошибка: 40 - не удалось открыть соединение с SQL Server) »

... это было во время выполнения следующего кода C #, который пытался получите данные SQL Server, чтобы отобразить их в сетке. Разрыв произошел именно в строке, которая говорит connect.Open ():

        using (var connect = Connections.mySqlConnection)
        {
            const string query = "SELECT Name, Birthdate, Narrative FROM Friends";
            using (var command = new SqlCommand(query, connect))
            {
                connect.Open();
                using (var dr = command.ExecuteReader())
                {
                    while (dr.Read())
                    {
                        // blah
                    }
                }
            }
        }

Это было необъяснимо, потому что SQL-запрос был очень простым, у меня была правильная строка подключения, и сервер базы данных был доступен. Я решил запустить сам SQL-запрос вручную в SQL Management Studio, и он прошел отлично и дал несколько записей. Но в результатах запроса оставалось одно: в тексте типа «varchar (max) в таблице« Друзья »был некорректно закодированный текст HTML (в частности, некоторые закодированные символы комментариев сортировки <!--, помещенные в данные столбца« Повествование » ). Строка подозрительных данных выглядела так:

Name    Birthdate    Narrative
====    =========    ============== 
Fred    21-Oct-79    &lt;!--HTML Comment -->Once upon a time...

Обратите внимание на кодированный HTML-символ «&lt;», который означал «& lt;» персонаж. Как-то это пробилось в базу данных, и мой код на C # не смог его забрать! Он провалился каждый раз прямо на линии connect.Open ()! После того, как я вручную отредактировал эту одну строку данных в таблице базы данных «Друзья» и поместил в декодированный «& lt;» характер, все сработало! Вот как должна выглядеть эта строка:

Name    Birthdate    Narrative
====    =========    ============== 
Fred    21-Oct-79    <!--HTML Comment -->Once upon a time...

Я отредактировал одну плохую строку, которую я использовал, используя этот простой оператор UPDATE ниже. Но если у вас было несколько нарушающих строк закодированного HTML, вам может понадобиться более сложная инструкция UPDATE, которая использует функцию REPLACE:

UPDATE Friends SET Narrative = '<!--HTML Comment -->Once upon a time...' WHERE Narrative LIKE '&lt%'

Итак, мораль истории (по крайней мере, в моем случае) , дезинфицируйте свой HTML-контент, прежде чем хранить его в базе данных, и вы не получите эту загадочную ошибку SQL Server в первую очередь! (Ну, правильная дезинфекция / декодирование вашего HTML-контента является предметом другого обсуждения, достойного отдельного поиска StackOverflow, если вам нужна дополнительная информация!) [/ ​​G6]

2
ответ дан ShieldOfSalvation 18 August 2018 в 08:10
поделиться

Я нашел следующие методы полезными:

  1. Убедитесь, что ваш механизм базы данных настроен на прием удаленных подключений: Пуск> Все программы> SQL Server 2005> Средства настройки> Конфигурация зоны SQL Server Нажмите в разделе Конфигурация поверхности для служб и подключений Выберите экземпляр, имеющий проблемы> Механизм базы данных> Удаленные подключения Включение локальных и удаленных подключений Перезапуск экземпляра
  2. Возможно, вам нужно создать исключение на брандмауэре для SQL Server экземпляр и порт, которые вы используете: Пуск> Выполнить> Брандмауэр.cpl Перейдите на вкладку исключений Добавить sqlservr.exe (обычно находится в C:\Program Files (x86)\Microsoft SQL Server\MSSQL.x\MSSQL\Bin, проверьте установки для фактического пути к папке) и порт (по умолчанию 1433). Проверьте Строка соединения также из FIX: ОШИБКА: Не удалось открыть соединение с SQL Server :
  3. Проверьте, правильно ли работают службы SQL Server: Перейти к Все программы> Microsoft SQL Server 2008> Инструменты настройки> Конфигурация SQL Server ation Manager> Службы SQL Server Проверьте, работает ли статус службы SQL Server. Кроме того, убедитесь, что ваш удаленный сервер находится в одной сети. Запустите sqlcmd -L, чтобы узнать, включен ли ваш сервер в список вашей сети.
  4. Включить TCP / IP в конфигурации SQL Server Когда два или более SQL-сервера подключены по сети, они выполняют все коммуникации с использованием TCP / IP. Стандартный порт установки SQL Server - 1433. Этот порт можно изменить с помощью диспетчера конфигурации SQL Server. Для подключения SQL Server необходимо включить TCP / IP. Перейти к Все программы >> Microsoft SQL Server 2008 >> Инструменты настройки >> Диспетчер конфигурации SQL Server >> Выберите TCP / IP Щелкните правой кнопкой мыши по TCP / IP >> Нажмите «Включить». Необходимо перезапустить службы SQL Server, чтобы все изменения вступили в силу , Щелкните правой кнопкой мыши и перейдите к свойствам меню, чтобы выбрать местоположение, где порт по умолчанию для SQL Server можно изменить.
255
ответ дан Teo Chuen Wei Bryan 18 August 2018 в 08:10
поделиться
  • 1
    Включить TCP / IP в конфигурации SQL Server было для меня решением при использовании SQL Server 2014 Express. – Mike Richards 21 October 2014 в 16:32
  • 2
    Сегодня я потратил много времени на это, наконец, что сработало для меня: Open Sql Server Configuration Manager - & gt; Протоколы для & lt; INSTANCE & gt; - & gt; TCP / IP - & gt; IP-адреса (вкладка) . Перейдите к последней записи IP All и укажите TCP-порт 1433 . Теперь перезапустите SQL Server (& lt; INSTANCE & gt;) , используя services.msc . После этого проблема решена! – user1336087 24 February 2015 в 14:26
  • 3
    Я также столкнулся с конкретной проблемой на моем локальном сервере Sql и решил, проверив локальные службы операционной системы и Искал конкретные службы Sql и начал их по очереди. Он работал идеально. – Faisal Naseer 10 March 2015 в 07:28
  • 4
    У меня тоже была такая же проблема, что и на сервере sql найдено, что служба mssqlserver была остановлена, запустил ее. Теперь удалось подключиться к экземпляру – Rak 4 April 2015 в 09:00
  • 5
    Также ПОМНИТЕ к сервису ENABLE SQL Server Browser. В свое время настроили несколько SQL-серверов ... Но на этом этапе всегда есть разные сценарии :) – mschr 14 October 2016 в 08:49

Моя проблема заключалась в том, что вам нужно иметь строку строки подключения как на вашем уровне репозитория, так и на веб-уровне. Когда я добавил его в свой web.config, а также в свой app.config, Entity Framework смог создать миграцию.

Мой вопрос в том, зачем ему нужен web.config, когда есть абсолютно там нет доступа к базе данных.

1
ответ дан Thing 18 August 2018 в 08:10
поделиться

У меня была такая же ошибка, когда я захотел запустить мой проект WinForms (который включает в себя работу с базой данных SQL Server и отлично работающую на моем ПК) на другом ПК. Проблема была в брандмауэре Windows на моем ПК. Я решил это, добавив два правила. Это вся процедура, позволяющая SQL Server через брандмауэр Windows:

  1. Откройте «Выполнить» и введите services.msc
  2. . Найдите службу для SQL Server (имя экземпляра) и SQL Server Browser. По одному за раз щелкните правой кнопкой мыши, выберите «Свойства», скопируйте путь к файлу exe
  3. . Затем откройте firewall.cpl, нажмите «Разрешить приложение» или добавить правило, добавить ранее скопированный путь (есть процедура вам нужно следовать), проверьте Домен и Частный, снимите флажок Public.

Это ссылка YouTube, где вы можете увидеть эту процедуру: Разрешить SQL Server через брандмауэр Windows

10
ответ дан Tunaki 18 August 2018 в 08:10
поделиться
  • 1
    Прекрасно подходит для меня. Важно: добавьте браузер и сервер в брандмауэр! +1 – BendEg 9 March 2016 в 13:24
  • 2
    Мне было трудно найти файл sqlservr.exe, это помогло найти его. – Stan 24 May 2017 в 19:45

Я решил эту проблему, установив проект, который использует Entity Framework в качестве стартового проекта, а затем запустил команду «update-database».

1
ответ дан user1796440 18 August 2018 в 08:10
поделиться

Добавляем мой сильно поддержанный комментарий как ответ со скриншотами.

Я потратил много времени на это, наконец, что сработало для меня:

1) Открыть Sql Server Configuration Manager -> Конфигурация сети SQL Server -> Протоколы для & lt; (INSTANCE)> -> TCP / IP (дважды щелкните по нему).

2) Выберите -> IP-адреса (вкладка).

3) Перейти к последней записи IP All и указать TCP-порт 1433.

4) Нажмите Win + R и введите services.msc.

5) Теперь перезапустите SQL Server & lt; (INSTANCE)>.

После этого проблема была решена!

63
ответ дан Community 18 August 2018 в 08:10
поделиться
Другие вопросы по тегам:

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