【问题标题】:Using keyword with creating new connection with database使用关键字创建与数据库的新连接
【发布时间】:2013-11-04 23:35:55
【问题描述】:

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

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

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

private OdbcConnection con;

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

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

【问题讨论】:

标签: c# asp.net database connection using


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      【解决方案3】:

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

      Avoiding Problems with the Using Statement

      ado.net Closing Connection when using “using” statement

      【讨论】:

        【解决方案4】:

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

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-11-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-05-23
          • 2015-09-22
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多