2015-11-04 2 views
0

В Asp.net mvc я попытался открыть соединение sql, но он всегда дает мне неверную фатальную ошибку соединения. Вот мой следующий код:Внутренняя связь фатальная ошибка при открытии соединения

В Web.config:

<connectionStrings>  
<add name="test" connectionString="Data Source=test,3306;Initial catalog=test;User Id=xxxxx;password=xxxx;Trusted_Connection=False;Encrypt=True;" providerName="System.Data.SqlClient" /> 

В классе контроллера:

var sql = "select * from users where email = \"" + model.Email + "\" and password = \"" + model.Password +\""; 
     System.Diagnostics.Debug.WriteLine("return url = "+sql); 
     string connectionString = ConfigurationManager.ConnectionStrings["test"].ConnectionString; 
     using (var conn = new SqlConnection(connectionString)) 
     { 
      try 
      { 
       conn.Open(); 
       SqlCommand cmd = new SqlCommand(sql, conn); 

       SqlDataReader dr = cmd.ExecuteReader(); 
       dr.Read(); 
       System.Diagnostics.Debug.WriteLine("output = " + dr.HasRows); 
       conn.Close(); 
      } 
      catch(Exception e) 
      { 
       System.Diagnostics.Debug.WriteLine("exception " + e.ToString()); 
      } 


     } 

Это дает мне следующее исключение на conn.open();

System.InvalidOperationException: Internal connection fatal error. Error state: 18 

Может кто-нибудь предложить, что не так в моем коде.

+0

Когда вы используете инструкцию 'using', вам не нужно явно закрывать ваше соединение! –

+0

Хорошо. Но все же это дает мне ошибку на conn.open() –

ответ

1
public MySqlConnection GetMySqlConnection(string dataBase, string server,uint port,string userID,string pass) 
{ 
      MySqlConnectionStringBuilder myBuilder = new MySqlConnectionStringBuilder(); 
      myBuilder.Database = dataBase; 
      myBuilder.Server = server; 
      myBuilder.Port = port; 
      myBuilder.UserID = userID; 
      myBuilder.Password = pass; 

      MySqlConnection myconn = new MySqlConnection(myBuilder.ConnectionString); 

      myconn.Open(); 
      return myconn; 
    } 

Описание: Вы должны использовать MySql вместо MS SQL. Установите MySql разъем сети и MySql для Visual Studio ("только Google их")

После установки:

  1. вы должны добавить MySql.Data в Ссылки

  2. в своем классе: с помощью MySql.Data.MySqlClient;

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