2013-04-25 2 views
0

Я только начал играть с SQL на C#, и я пытаюсь подключиться к удаленному SQL-серверу. Я добавил свой IP-адрес в список хостов, имеющих разрешение на удаленный доступ.System.InvalidOperationException: Внутренняя связь. Неустранимая ошибка. при открытии соединения sql

Мой код продолжает производить эту ошибку:

System.InvalidOperationException: Internal Connection Fatal Error.
at System.Data.SqlClient.TdsParserStateObject.TryPocessHeader<>
at System.Data.SqlClient.TdsParserStateObject.TryPrepareBuffer<>
at System.Data.SqlClient.TdsParserStateObject.TryReadByteArray<.Byte[] buff, Int32 offset, Int32 len, Int32& totalRead>

След на самом деле больше, чем это, но те первые несколько строк.

Это код, который вызывает ошибку (Моя текущая строка подключения имеет правильное имя пользователя, пароль и имя базы данных):

connectionString = "Data Source=173.254.28.27,3306;Network Library=DBMSSOCN;Initial Catalog=myDatabase;User Id=myUserName;Password=myPassword;"; 
using (SqlConnection myConnection = new SqlConnection(connectionString)) 
{ 
    try { myConnection.Open(); } 
    catch (Exception e) { Console.WriteLine(e.ToString()); } 
} 

Любая помощь будет принята с благодарностью.

Спасибо!

ответ

1

EDITED

Если вы используете MySQL Server, то строка подключения неправильно!

попробовать этот ConnectionString:

_connectionStr = new MySqlConnectionStringBuilder 
      { 
       Server = "173.254.28.27", 
       Database = myDatabase, 
       UserID = myUserName, 
       Password = myPassword, 
       ConnectionTimeout=60, 
       Port = 3306, 
       AllowZeroDateTime = true 
      }; 
      _con = new MySqlConnection(_connectionStr.ConnectionString); 

      try 
      { 
       _con.Open(); 
      } 
      catch 
      { 
       Console.WriteLine("Error, help i can't get connected!"); 
      } 

Если вы используете SQLServer попробовать отключить пул подключений через строку подключения!

, добавив:

Pooling=false

Успехов!

+0

Спасибо за ответ! Я сделал и получил сообщение об ошибке ** System.ArgumentException: Ключевое слово не поддерживается: «пул». ** – Sadiq

+0

Я отредактировал свой ответ, пожалуйста! – Obama

+0

Спасибо. Это фиксировало System.ArgumentException, но я все еще получаю первоначальную ошибку. :( – Sadiq

0

Создайте файл udl, если он подключается, проблема заключается в коде/приложении, если он не подключен, то это ваш брандмауэр, строка подключений, библиотека DLL и т. Д. Ну, главное, это, вероятно, строка соединения. Выполните следующие действия: создайте пустой текстовый файл и переименуйте его «myconnection.udl». Теперь дважды щелкните файл, и он запустит апплет. Вы можете настроить подключение к своей базе данных и протестировать его. (он будет собирать зарегистрированные библиотеки подключений и т. д.). Если он даст OK, затем откройте файл udl в блокноте, вы увидите правильную строку соединения. Вставьте в настройки подключения к приложению. Файлы UDL, как правило, неправильно понимаются. Это просто текстовый файл, который содержит настройки подключения. Затем они вызывают соединение dll. Если файл udl работает, то у вас есть правильная строка подключения 100%

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