2011-01-14 13 views
2

私はデータベースに接続し、データベース内のユーザー活動/クエリの量に関係なく接続を開いたままにしています。現在、ユーザーが保存するたびにバックエンドにログオン処理が必要なクエリ(保存、更新など)を開閉する接続があります。単純に接続して離れる方法はありますか接続が開いているので、ログオンプロセスのためにクエリを実行するときに時間がかかりません。vb.netでODBC接続を開く方法

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 

答えて

2

を.NETが自動的にあなたのためのconnection poolを維持します。これは、私が使用しているものです。あなたは

リリース 接続プールへの接続フレームワークConnectionClose()を呼び出し、または接続プーリングが 無効

+0

私は接続を閉じない限り開いていると私はちょうどSQL = "....."アプリケーション内のどこでも使用することができると言っている? – gfuller40

+0

私は何ですか?アプリケーションを初めて使用すると、最初のSQL文がサーバに接続して実行されます。クローズを呼び出すと、実際にはデータベース接続が閉じられず、接続プールに解放されます。実行される文(同じ接続文字列を前提とする)は、プールからの接続を再利用します最初に開く必要はありません。データベースがこれを監視する方法を持っている場合は、接続が実際に常に行き来していることがわかります。 –

+0

あなたは今のところとまったく同じ方法でコーディングしてください。接続プールとそれを調整する方法については、http://aspalliance.com/1099_Understanding_Connection_Pooling_in_NET.2を参照してください。 –

0

の代わりに「詐欺」を定義している場合 接続を閉じAccording to MSDN、 usingステートメントは静的変数として上に定義します。関数が呼び出されると、Conがassinedされているかどうかを見ることができます。そうでない場合は、接続文字列を作成し、Con = New OleDBConnectionを設定して開きます。それは静的変数なので、次の呼び出しでその値を保持します。それが何もないことを確認し、すぐにそれを使用してください。ルーチンでcloseを呼び出さないようにするか、接続が開いたままにならないようにしてください。 vb.net 4.5で

1

は、次の手順を実行します。

上部にまっすぐこのラインに入れてクラス定義の後:

Public Shared conn As OdbcConnection 

を次に、あなたが接続利用を使用したいサブルーチンにこのライン:

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

[新規たOdbcCommandは新しいものを開くことなく、既存の接続を使用します。

これはまた、常に新しい接続を開いたときのMySQLの問題を解決します。原因は次のとおりです。最大接続エラー

関連する問題