0

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

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

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

private OdbcConnection con;

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

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

4 回答 4

1

我将举第一个例子。使用关键字继承了一个一次性接口。它在关闭代码后自动处理对象。

在你的第二个例子。您需要利用您将正确处理对象。

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

于 2013-11-05T02:23:47.153 回答
0

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

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

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

于 2013-11-04T23:41:58.073 回答
0

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

避免使用语句的问题

ado.net 使用“使用”语句时关闭连接

于 2013-11-05T00:04:22.290 回答
0

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

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

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

于 2013-11-05T00:06:13.263 回答