2015-08-24 94 views
0

我有一个模块中创建了一个功能完整的项目数据库连接连接到数据库的Windows应用程序如何处理

Imports System.Data.SqlClient 
Module mod_main 
Public Function connectDB() As SqlConnection 
     Dim Connection As New SqlConnection 
     Try 
      If Connection.State = ConnectionState.Open Then 
       Connection.Close() 
      End If 
      If IntegratedSecurity Then 
       Connection.ConnectionString = "Data Source = " & server & ";Initial Catalog = " & db & ";Connection TimeOut =0;Integrated Security=True" 
      Else 
       Connection.ConnectionString = "Data Source = " & server & ";Initial Catalog = " & db & ";Connection TimeOut =0;User ID='" & usr & "';Password='" & pwd & "'" 
      End If 
      Connection.Open() 
      Return Connection 
     Catch ex As Exception 
      MsgBox(ex.Message) 
     End Try 
    End Function 
End Module 

我有这么多的功能和类使用的数据库活动,过多的我使用function.For exmample上述连接:

Public Sub FillComboBox(ByVal ComboBox As C1.Win.C1List.C1Combo, ByVal Query As String, ByVal DisplayMember As String, ByVal ValueMember As String) 
     Dim SourceDataSet As New DataSet 
     Dim adapter As New SqlDataAdapter(Query, connectDB) /*Assigning connection here */ 
     adapter.Fill(SourceDataSet) 
     ComboBox.DataSource = SourceDataSet.Tables(0) 
     ComboBox.ColumnHeaders = False 
     ComboBox.ColumnWidth = 0 
     ComboBox.ExtendRightColumn = True 
     ComboBox.DisplayMember = DisplayMember 
     ComboBox.ValueMember = ValueMember 
    End Sub 

因为我在编程我的问题是初学者的是,这是处理数据库连接的正确方法?

回答

0

我建议你作如下修改:

  1. 使Connection公共全球可访问
  2. 保存连接字符串中config file,并从那里访问它
  3. 不必关闭并重新打开连接开放仅在没有可用连接时连接

在你的情况下,所有这一切都会创建一个新的连接,因为你正在声明和初始化 函数中的连接,所以调用该函数时会调用 。因此检查连接状态少义:

所以你的函数看起来像以下:

+0

将检查..... – gabriele