我继承了一个使用全局数据库sqlconnection对象的应用程序,以便从应用程序中的每个表单访问数据库。应用程序启动时建立连接。
我认为连接始终是打开的,这不是一个好习惯,我宁愿改变它,所以我会打开数据库连接并在每次需要访问数据库时关闭它。
所以我想知道我是不是在这里。
我会使用这个,欢迎任何改进建议:
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对象。
答案 0 :(得分:1)
您使用using
处理连接的方式很好,连接将始终关闭并为您处理。
从调用者传递命令的方式并不是很好,没有数据库引擎隔离。对于参数,您只需传递一个名称和值列表,并在上面的类中添加参数,而不是在您调用此代码的100.000个地方。
不要忘记将新打开的连接与命令关联起来,否则它将无效。
有些人还使用了另一个命令,因此命令被释放,在用于连接的内部......