Не удается неявно преобразовать тип ‘string’ в ‘System.Data.SqlClient.Sqlconnection’

#c# #.net #sql-server #winforms

#c# #.net #sql-сервер #winforms

Вопрос:

Я получаю эту ошибку:

не удается неявно преобразовать тип ‘string’ в ‘System.Data.SqlClient.Sqlconnection’

для этого кода:

 SqlConnection con1 = ConfigurationManager.ConnectionStrings["connect"].ConnectionString;
  

Как мне решить эту проблему? Я работаю с приложением Windows.

Комментарии:

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

2. Спасибо всем, кто ответил на мой вопрос.

Ответ №1:

Это то, что вам нужно:

 using(SqlConnection con1 = new SqlConnection(ConfigurationManager.ConnectionStrings["connect"].ConnectionString))
{
   // do something with con1
}
  

Примечание: это лучше, чем другие ответы, потому что содержит еще один совет: используйте ключевое слово using, чтобы гарантировать удаление вашего объекта connection и, следовательно, предотвратить проблемы с пулом соединений. 🙂

Причина, по которой вы получали ошибку в первую очередь, заключается в том, что вы пытались присвоить строковое значение (ConfigurationManager.Строки подключения[«connect»].ConnectionString) в переменную типа SqlConnection.

Я предлагаю вам узнать больше о типировании переменных, приведении переменных и назначении типов в C #, это сделает кодирование намного более приятным (менее разочаровывающим) процессом.

Удачи!

Комментарии:

1. можете ли вы указать значение ConfigurationManager. Строки подключения[«connect»]. Строка подключения здесь

2. @DeveloperX — значение этого параметра будет зависеть от того, что находится в файле app.config.

3. не уверен, почему вы добавляете сюда этот комментарий developerx — возможно, вы имели в виду добавить его в исходный вопрос? не ясно, извините…

4. @Nathan: Спасибо. Ваш ответ помог мне решить проблему.

Ответ №2:

 SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["connect"].ConnectionString);
  

Ответ №3:

ConfigurationManager.ConnectionStrings["connect"].ConnectionString является строкой, содержащей информацию о соединении.

Вам необходимо создать экземпляр SqlConnection и передать значение строки подключения.

SqlConnection SqlConnection = новый SqlConnection(ConfigurationManager.ConnectionStrings["connect"].ConnectionString);

Ответ №4:

 using (System.Data.SqlClient.SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["connect"].ConnectionString)) { 
    con.Open(); 
    SqlCommand cmd = new SqlCommand(); 
    string expression = "Parameter value"; 
    cmd.CommandType = CommandType.StoredProcedure; 
    cmd.CommandText = "Your Stored Procedure"; 
    cmd.Parameters.Add("Your Parameter Name", 
                SqlDbType.VarChar).Value = expression;    
    cmd.Connection = con; 
    using (IDataReader dr = cmd.ExecuteReader()) 
    { 
        if (dr.Read()) 
        { 
        } 
    } 
}