2011-08-21 71 views
4

在VB.NET我可以使用:的SqlConnection在C#

Protected Conn As New SqlConnection(ConfigurationManager.ConnectionStrings("Active").ConnectionString) 

然而,當我在C#中的以下內容:

protected SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings("conn")); 

我得到的錯誤:

The name 'ConfigurationManager' does not exist in the current context

然後,如果我將其更改爲:

protected SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings("conn")); 

我得到的錯誤:

Non-invocable member 'System.Configuration.ConfigurationManager.ConnectionStrings' cannot be used like a method.

這是爲什麼,我該如何使用C#連接到我的SQL Server數據庫?

回答

11

嘗試這樣的:

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

通知的[]代替()這正是用於訪問的陣列的元素在C#。還請注意.ConnectionString屬性調用的用法,因爲SqlConnection構造函數需要一個字符串。

+0

我仍然得到'「ConfigurationManager中」這個名字在當前context'不存在。但我已經添加了'System.Configuration'到我的參考文獻 – Curt

+2

@Curt - 嘗試添加「using System.Configuration;」在頂部。請記住也像Ofer Zelig所說的那樣使用using語句。 – TrueWill

+0

@Curt,確保你已經爲你的項目引用了'System.Configuration'程序集,並且你已經添加了'using System.Configuration'來使'ConfigurationManager'類的insto作用域。 –

6

將最後一對括號改爲方括號。 在C#中,方括號用於方法調用,無論是使用方括號來訪問集合內部的成員(或如此)。

此外,使用using條款,以確保連接始終關閉,當你走出去的範圍佈置:

using (SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["conn"])) 
{ 
... 
} 

讀到它在這裏:http://msdn.microsoft.com/en-us/library/yh598w02(v=vs.80).aspx

2

在C#中,你使用方括號語法讀取集合:

eg

string[] strings = new[] { "first", "second", "third" }; 

string secondString = strings[1]; 

所以你訪問配置集合是這樣的:

ConfigurationManager.ConnectionStrings["conn"];