2012-04-29 9 views
0
  1. すべてのフォームを使用するコール接続クラス
  2. でsqlserver接続を作成します。

すべてのフォームを使用するために、C#でSQLServer接続をクラスに作成したいと考えています。クラスファイル内の接続のコードこのあたりにすべてのフォームで使用するために、C#でクラスにsqlconnectionを作成する方法は?

public System.Data.SqlClient.SqlConnection Con = new System.Data.SqlClient.SqlConnection(); 
public System.Data.SqlClient.SqlCommand Com = new System.Data.SqlClient.SqlCommand(); 

public string conStr; 

public SQL2(string conStr) 
{ 
    try 
    { 
     Con.ConnectionString = conStr; 
     Con.Open(); 
     Com.Connection = Con; 
     Com.CommandTimeout = 3600; 
    } 
    catch (Exception ex) 
    { 
     MessageBox.Show(ex.Message); 
    } 
} 

public bool IsConnection() 
{ 
    Boolean st; 

    if (Con.State==ConnectionState.Open) 
    { 
     st=true; 
    } 
    else 
    { 
     st = false; 
    } 

    return st; 
} 

は私の完全なコード例を与えることができますか?あなたはおそらく欲しい

+0

[OK]を、もう一度それを説明し、英語にこの時間を使用してみてください。あなたの問題は何ですか? – walther

+2

完了したら接続を閉じます。このようなクラスでは開かないでください。 – LarsTech

答えて

1

は、接続を作成するために使用するために使用する工場です:

using(var connection = databaseConenctionFactory.Create()) 
{ 
    // then do want you want here 
} 

LarsTechはあなたが開いている接続を維持する必要はありません述べたように。オープン/使用/クローズ。 usingの構文は、不要な綿毛をすべて処理するのでここではかなり役に立ちます。ですから、usingを使用する習慣があれば、運用システムでは奇妙な動作に陥ることはありません。

このようなものを実装するにはかなりのビットがありますので、いくつかの調査を行うことができます。 ADOプロバイダファクトリを使用して、具体的な実装ではなくIDbConnectionを使用して実装を抽象化することができます。

また、依存関係注入を使用して工場/工場に行くこともできます。

だからあなたの毒を選択:)

+0

'using-statement'を使用すると、オブジェクト(この場合は接続)のDispose()メソッドが呼び出されることを指摘すると便利です。このメソッドは通常、接続/ファイルのクローズなどのリソースをクリーンアップします。 IDisposableから継承するすべてのオブジェクトでusingステートメントを使用できます(また、使用する必要があります)。 –

関連する問題