[英]ADO.NET connection string error
首先,是C#编程的新手。 我已经创建了一个专用类,按照下面的代码从Visual Studio 2010中Web服务应用程序的app.config获取连接字符串。
在构建代码时,我通过catch块得到以下错误:
“名称“连接”在当前上下文中不存在”。
显然,连接超出了范围。
public class FCSConnection : IDisposable
{
public string GetDefaultConnectionString()
{
string DefaultConnectionString = null;
try
{
DefaultConnectionString = ConfigurationManager.AppSettings["ConnectionString"];
SqlConnection connection = new SqlConnection(DefaultConnectionString);
connection.Open();
return DefaultConnectionString;
}
catch (Exception)
{
if (DefaultConnectionString != null)
{
connection.Dispose();
}
}
return DefaultConnectionString;
}
public void Dispose()
{
throw new NotImplementedException();
}
}
确切的编译器消息引用您的catch
语句:
connection.Dispose();
在这里, connection
是一个未知名称,因为它是在try
块内声明的。
至于您的整个代码,我认为这也是错误的。 如果希望FCSConnection
类封装SQL连接,则应connection
声明为私有成员,然后将其处置在Dispose()
方法中。
public class FCSConnection : IDisposable
{
private SqlConnection connection = null;
public string GetDefaultConnectionString()
{
string defaultConnectionString = null;
try
{
defaultConnectionString = ConfigurationManager.AppSettings["ConnectionString"];
connection = new SqlConnection(defaultConnectionString);
connection.Open(); // are you sure want to keep the connection being opened??
}
catch
{
Dispose();
}
return defaultConnectionString;
}
public void Dispose()
{
if (connection != null)
{
connection.Dispose();
connection = null; // to avoid repeat dispose
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.