初学者:
大家好 - 正在寻找一些帮助来了解我应该如何打开和关闭数据库连接。
我试图解决的问题: 我有一组存储过程需要在数据访问层执行。
我的服务调用 DA 方法 Get(Request req) 如下:
public Data Get(Request request)
{
var data = new Data();
data = GetData();
data.AppleData = GetGrapeData();
data.OrangeData = GetGrapeData();
data.GrapeData = GetGrapeData();
return data;
}
其中所有 getmethods getdata、getgrapedata 等都是数据访问类中的私有(private)方法,并且在每个方法中调用不同的 SP。
现在,在每种方法中,我打开和关闭数据库连接如下:
{ try{
using (var connection = new SqlConnection(connectionString)
using (var command = connection.CreateCommand())
{
connection.open();
ExecuteSP();
connection.Close();
}
}catch()
{
}
}
现在
有什么办法可以做到这一点,这样我就必须打开/关闭连接一次?
我正在每个私有(private)方法中 try catch 。这可以吗?
我上面的做法有什么问题吗?
最佳答案
是的,您只能打开一次连接。您可以使用类或其他东西来管理它,但对于我来说,对于一个简单的场景来说,这似乎有点过分了。
public Data Get(Request request)
{
using (var connection = new SqlConnection(connectionString))
{
try
{
connection.open();
var data = new Data();
data = GetData(connection);
data.AppleData = GetGrapeData(connection);
data.OrangeData = GetGrapeData(connection);
data.GrapeData = GetGrapeData(connection);
return data;
}
finally
{
connection.close()
}
}
}
然后在调用存储过程的方法中:
private Date GetDate(SqlConnection connection)
{
using (var command = connection.CreateCommand())
{
return ExecuteSP();
}
}
您可以将异常处理放在任何您想要的地方,但是如果您不打算对异常执行任何操作,那么您绝对不应该捕获它。
关于c# - 数据库连接 : How to use c# 4. 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19869212/