0

私はを使用するwindows formベースのアプリケーションを書いています、databaseそして私は私がちょうど使用することができるようにそして私が望むどんな形からでも次のようにしたい とdeclare思います。やり方を教えてください。globalvcon.open()vcon.close()open and close my database

OleDbConnection vcon = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data 
Source=F:\workspace\RDASMS\RDASMS\rdadb.mdb");
4

4 に答える 4

1

接続は非常に軽量であるため、必要に応じて接続を作成して閉じることができます。多分このように:

using (var conn = new OleDbConnection(connStr))
{
    // Use your connection
}

これにより、ブロックが終了したときに接続が自動的に閉じられます。

Configクラスなど、グローバルにアクセス可能な場所に文字列を配置することをお勧めします。

于 2013-03-20T19:11:33.803 に答える
0

まず第一に、名前空間でグローバルなものを宣言することはできません。そして、それが可能であったとしても、それは良い考えではありません。コードの重複を回避するための努力に感謝し、次のことをお勧めします。

  1. 構成に接続文字列を配置します。
  2. 接続を宣言し、必要に応じて、おそらく使用パターンで使用します。

2についてのポイント:ジェットエンジン(Access)を使用していることに気づきました。これにより、接続をオンデマンドで開閉することでパフォーマンスが低下する可能性があります。少なくとも、以前はこのようでした。いずれにせよ、必要に応じて接続を開き、完了したらすぐに閉じるよりも、他の場合に従うパターンに注意してください。

于 2013-03-20T19:12:14.313 に答える
0

他の人が述べているように、「グローバル」静的型は通常、最良の設計アプローチではありませんが、特定の質問に答えるためのものです。

namespace YourApplicationNamespace
{
    public static class MyOleDbConnection
    {
        public static OleDbConnection OleDbConnection;

        public static void Open()
        {
             // Do Something with OleDbConnection.
        }

        public static void Close()
        {
             // Do Something with OleDbConnection.
        }
    }
}

次のように使用できます:

MyOleDbConnection.Open();
MyOleDbConnection.Close();
于 2013-03-20T19:15:14.967 に答える
0

静的メンバーを使用して静的クラスを作成できます。

public static MyConnection
{
    public static OleDbConnection Connection = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\workspace\RDASMS\RDASMS\rdadb.mdb");
}

次に、次のようにアクセスできます。

var vcon = MyConnection.Connection;
vcon.Open();

このようにすると、プログラムに不必要な複雑さの層が追加されます。MyConnection上記の例のように、データベースアクセスを厳密に処理するクラスを作成する必要があります。実際にアクセスを処理するには、適切なメソッドを追加する必要があります。Jetプロバイダーを使用すると、ファイルを絶えず開いたり閉じたりするときに、パフォーマンスに重大な影響を与える可能性があります。接続が長期間非アクティブになる場合にのみ、閉じてください。その場合、次の方針に沿ってさらに何かを行う必要があります。

using(var vcon = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\workspace\RDASMS\RDASMS\rdadb.mdb"))
{
    // Your code here...
}

これにより、操作が完了すると接続が閉じられます。ただし、これから発生する可能性のあるパフォーマンスの問題を忘れないでください。

于 2013-03-20T19:18:21.970 に答える