使用关键字创建与数据库的新连接

时间:2013-11-04 23:35:56

标签: c# asp.net database connection using

在数据库连接方面,我尝试提高自己的编程技能。

我在互联网上找到了这两个类似的解决方案,我想知道区别是什么,我应该使用哪一个以及为什么?

using (OdbcConnection con = new OdbcConnection("connectionstring"))
{
       con.Open
       //QUERY
}

private OdbcConnection con;

public Database()
{
    con = new OdbcConnection("connectionstring");
}

public insertPerson()
{
    con.Open();
    //QUERY
}

4 个答案:

答案 0 :(得分:1)

我会选择第一个例子。使用关键字具有继承的idisposable接口。它在关闭代码后自动处理对象。

关于你的第二个例子。你需要使用你将正确处理对象。

无论哪种方式,它都可以连接到数据库。但第一个是我的偏好。

答案 1 :(得分:0)

无论哪种方式都可以接受。 “using”语句将在结束括号之后处理(返回已分配的内存)连接对象。

这是个人喜好的问题。我倾向于为我的数据访问类使用单个连接对象(如第二个示例)。

确保在进行数据库调用后关闭连接。

答案 2 :(得分:0)

如果您的代码不仅仅是由您自己维护,那么最好采用“使用”语法:

Avoiding Problems with the Using Statement

ado.net Closing Connection when using “using” statement

答案 3 :(得分:0)

你的第二个例子似乎是一个类的初始阶段,它将完成处理底层数据库所需的一切。如果这是你的意图,请记住,这个解决方案导致很难维护代码库。更不用说连接未正确关闭时的潜在问题,因为某些异常会破坏正常的代码流。我个人的建议是“不要那样做。”

相反,您应该拥有一个专门的函数来处理数据的搜索/插入/更新/删除,并构建您的Plain Old CLR Objects。在这种情况下,通常的模式是创建连接,打开,使用和销毁。第一个示例的using statement正确处理的模式。今天,您无需担心创建和打开连接的成本,因为您通常拥有connection pooling基础架构,可以最低程度地降低一次又一次重新打开相同连接的成本。

说,这是一个意见,可能这个问题将被关闭....