2011-08-21 73 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"];