2017-07-21 20 views
0

私はVB.NETで私のプロジェクトに問題があります。問題は、Accessデータベースでデータを保存、削除、または更新するたびに発生します。「接続文字列プロパティを変更できません。接続の現在の状態は開いています」というエラーメッセージが表示されます。データベース接続を終了するには?

私はIf con.State = ConnectionState.Open Then con.Close() End If コマンドを使用して、データベースを呼び出したすべてのセクションでfinallyを使用しています。

しかし、私は同じ問題を抱えています。私は間違って何をしていますか?

+0

デバッグの助け**求めて –

+0

質問あなたのコードを提供する場合、それは良いだろう**望ましい行動を含める必要があります(「なぜこのコードは動作しませんの?」) 、特定の問題またはエラー、およびそれを再現するのに必要な最短コード**を含んでいます** **明確な問題文**のない質問は、他の読者にとって有用ではありません。 [質問]を読んで[ツアー] – Plutonix

答えて

1

"USING" - キーワードを使用してください。 usingブロックを終了すると、オブジェクトに対して.Dispose()が呼び出されます。このオブジェクトは、SqlConnectionに対して接続と開いているリソースを閉じます。

Using connection As New SqlConnection(connection) 

Dim command As New SqlCommand("Select * From dbo.table1",connection) 

command.ExecuteNonQuery() 

End Using 

EDIT:

Module Module1 

Public Sub DbConnection() 

Dim connectionString as String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=yourServerAddress;Initial Catalog=university.mdb; 
Integrated Security=SSPI;" 

Using connection as New Sqlconnection(connectionstring) 

Dim command As New SqlCommand("Select * From dbo.table1",connection) 

command.ExecuteNonQuery() 

End Using 

End Sub 

End Module 
+0

を実際に私は少し混乱しているあなたはこのコードを記述することができます教えてください。私はあなたに私が接続 – Ishti

+0

モジュールのModule1 公開INPを作成したコードを与えている新しいOleDb.OleDbConnection 公共ファンクションたDbConnection()文字列=「プロバイダとして 薄暗いDBPROVIDERとして文字列 公共詐欺などの文字列 公開searchbyとして= Microsoft.Jet.OLEDB.4.0; " 薄暗いdbSource文字列= mydocumentsfolder&thedatabase dbSource =として文字列= "/university.mdb" 薄暗いfulldatabasepathとして文字列= Environment.CurrentDirectory 薄暗いthedatabaseとして文字列 薄暗いmydocumentsfolderとして、 "データソース=" &fulldatabasepath con.ConnectionString = DBPROVIDER &dbSource リターン・エンド機能 – Ishti

+0

私の投稿を編集しました。それがあなたを助けたなら、それを完了としてマークしてください。 – battleboimatze

関連する問題