2011-09-02 81 views
0

我已经继承了一个应用程序,该应用程序使用全局数据库sqlconnection对象来访问应用程序中每个表单的数据库。连接在应用程序启动时建立。.net中的全局数据库连接

我认为始终打开连接不是很好的做法,我更愿意更改它,因此每次需要访问数据库时都会打开数据库连接并关闭它。

所以我想知道我是否在这里。

这是我会改为使用,任何改进的建议是欢迎:

Public Sub UpdateDatabase(ByVal command As SqlCommand, ByRef NumError As Double, ByRef DescError As String) 
    Using connection As New SqlConnection(connectionString) 
     Try 
      command.ExecuteNonQuery() 
      command.Dispose() 
      NumError = 0 
      DescError = "" 
     Catch ex As Exception 
      NumError = Err.Number 
      DescError = Err.Description 
     End Try 
    End Using 
End Sub 

我送SqlCommand对象的方法,而不是查询字符串,因为我可以将参数添加到SqlCommand对象。

回答

1

您处理与using的连接的方式没有问题,连接将始终关闭并为您处理。

从调用方传递命令的方式并不是很好,没有数据库引擎隔离。对于参数,您可以简单地传递一个名称和值的列表,并在上面的类中添加参数,而不是在您调用此代码的100.000个位置中。

不要忘记将新打开的连接关联到该命令,否则它将无法工作。

一些人也把周围的命令另一个使用这样的命令配置时,使用的连接里面...

+0

'为参数,你可以简单地传递名称和值的列表,并在添加参数你上面的类,而不是在你称之为这个代码的100.000个地方。“我不知道该怎么做,你有什么机会可以指点我做一个例子吗? – rfc1484

+1

@ rfc1484:这里是你的链接和示例:) http://www.sharpdeveloper.net/content/archive/2007/05/25/creating-sqlparameters-best-practices.aspx –