2016-07-12 19 views
1

私のVBプロジェクトでは、他のフォームを開くためのmdi親フォームがあります。あるフォームでは、SQL Serverで作成したテーブルをDataGridViewに表示します。私は接続をローカル(DGVとのフォームロード)に設定するとデータが正常にロードされますが、接続をグローバルにして、シンプルにして、常に同じ接続を開いたり閉じたりするのを止めなければなりません。以下のようにmdi形式を使用します。mdiフォームでのグローバルデータベース接続の作成

Public Class mdi1 

Dim con As inifile = New inifile() 
Dim constr = con.readconnectionstring() 

私はすでにImports System.Data.OleDbコードを追加したので、コードをコンパイルするときに、なぜ私は次のエラーを取得するのですか?

constr is not declared, it may be inaccessible due to its protection level 

このエラーは、初心者のように見えるとして、私が取得する方法を教えてくれしようとします(接続はもともとDGVにデータをロードするように設定されていた)私のform1_loadサブルーチン

+1

OleDBを使用してSQL Server(タグ)にアクセスしていますか? – Plutonix

+0

@Plutonixはい、私はSqlClientを使用しようとしましたが、先生はOleDbを使用すると言っていましたが、どちらも動作しました –

答えて

1

でありますこれはベストプラクティスではなく、機能します。

あなたのコンストラクタはPublicとしてあなたMDIフォームでそれを定義することにより、どこからでもアクセス可能であることを確認してください:

Public constr = con.readconnectionstring() 

今、あなたは完全修飾変数名を使用して、このどこでもアクセスすることができます。

mdi1.constr 

ベスト実際にはMDI形式ではなく、独自の「DataAccess」クラスに格納することになります

+0

こんにちは、これは私が最初に持っていたエラーを取り除きました。それは私が元の質問に投稿する新しいエラーを取得するデータを表示するために使用されます。 –

+1

いいえ - 新しいエラーが発生した場合は、新しい質問を開始してください –

関連する問題