Глобальное подключение к базе данных в .net - PullRequest
0 голосов
/ 02 сентября 2011

Я унаследовал приложение, которое использует объект 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.

1 Ответ

1 голос
/ 02 сентября 2011

то, как вы обрабатываете соединение с using, в порядке, и соединение всегда будет закрыто для вас.

не очень хорошо, как вы передаете команду от вызывающей стороны, нет изоляции ядра базы данных. Для параметров вы можете просто передать список имен и значений и добавить параметры в вашем классе выше, а не в 100 000 мест, где вы вызываете этот код.

не забудьте связать вновь открытое соединение с командой, иначе оно не будет работать.

некоторые люди также помещают другое использование вокруг команды так, чтобы команда располагалась внутри использования для соединения ...

...