2011-06-07 75 views
3

我收到此錯誤:不能鍵入「串」隱式轉換爲「System.Data.SqlClient.Sqlconnection」

cannot implicitly convert type 'string' to 'System.Data.SqlClient.Sqlconnection'

此代碼:

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

我該如何解決這個問題?我正在使用Windows應用程序。

+0

你真的應該承認,解決你的問題的答案。 – 2011-06-07 08:16:44

+0

謝謝所有回答我的問題的人。 – Amruta 2011-06-07 10:35:41

回答

14

這是你所需要的:

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

注:這是比其他答案更好,因爲它包含另一個提示:使用using關鍵字,以保證您的連接對象的處理,從而防止連接池的問題。 :)

您在第一個位置得到錯誤的原因是您試圖將一個字符串值(ConfigurationManager.ConnectionStrings [「connect」] .ConnectionString)分配給SqlConnection類型的變量。

我建議你在C#中學習更多關於變量類型,變量轉換和類型賦值的知識,它將使編碼變得更加愉悅(不那麼令人沮喪)。

祝你好運!

+0

+1使用'使用' – 2011-06-07 07:54:50

+0

你可以把ConfigurationManager.ConnectionStrings [「connect」]的值。ConnectionString here – DeveloperX 2011-06-07 07:56:12

+0

@Alex R. - 謝謝 - 一個經常錯過的必要! – Nathan 2011-06-07 07:56:31

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

ConfigurationManager.ConnectionStrings["connect"].ConnectionString是保存連接信息的字符串。

您需要創建一個SqlConnection實例並傳入連接字符串值。

的SqlConnection的SqlConnection =新SqlConnection(ConfigurationManager.ConnectionStrings["connect"].ConnectionString);

0
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()) 
     { 
     } 
    } 
} 
相關問題