如何在vb.net中保持odbc连接打开

时间:2011-01-14 17:28:16

标签: vb.net

我正在尝试连接到数据库并保持连接打开,以便在数据库中进行任何数量的用户活动/查询。目前我有一个连接可以打开和关闭任何查询(保存,更新等等),这需要每次用户保存等时登录进程到后端...有没有办法简单地连接和离开连接是否打开,因此在登录过程中运行查询时不会有延迟时间?这就是我正在使用的:

    Private sConStrFormat As String = "Provider=TDOLEDB;Data Source=TDDEV;Persist Security Info=True;User ID={0};Password={1};Default Database=bcpm_ddbo;Session Mode=ANSI;"


   Private Sub cmdsave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdsave.Click


        Dim sSQL As String
        Dim sConStr As String

        Dim user As String
        Dim pass As String
        user = txtuser.Text
        pass = txtpass.Text

        Dim UserName As String = user
        Dim Password As String = pass

        sConStr = String.Format(sConStrFormat, UserName, Password)
        Using Con As System.Data.OleDb.OleDbConnection = New System.Data.OleDb.OleDbConnection(sConStr)
            Con.Open()
            sSQL = "INSERT INTO LTC_FBS (CLM_NUM) VALUES ('" & Me.txtClaim.Text & "')"
            Dim cmdins As New System.Data.OleDb.OleDbCommand(sSQL, Con)
            cmdins.ExecuteNonQuery()

            Con.Close()

        End Using


    End Sub

3 个答案:

答案 0 :(得分:2)

.Net会自动为您保留connection poolAccording to MSDN,当您在Close()框架

上致电Connection
  

释放与该连接的连接   连接池,或关闭   如果连接池是连接   禁用

答案 1 :(得分:1)

在vb.net 4.5中执行以下操作:

在课程定义者输入此行之后的最高位:

    Public Shared conn As OdbcConnection

然后,在要使用连接的子中使用以下行:

    If conn Is Nothing Then conn = New OdbcConnection(<your_connection_string>): conn.Open()

然后New OdbcCommand将使用现有连接而不打开新连接。在您确定完成之前不要关闭脚本中的连接(_Shutdown是一个好地方,你很高兴。

当不断打开新连接导致最大连接错误时,这也解决了MySQL的问题。

答案 2 :(得分:0)

不是在using语句中定义'con',而是在上面将其定义为静态变量。调用该函数时,您可以查看是否已确定“Con”。如果没有,则构建连接字符串并设置Con = New OleDBConnection,然后将其打开。由于它是一个静态变量,它将在下次调用时保留其值。检查它不是什么,然后立即使用它。确保您没有在例行程序中调用close,否则连接将不会保持打开状态。