C#開発-データベースへの接続(15.4)

I.概要

C#言語のConnectionクラスは、ADO.NETコンポーネントがデータベースに接続するときに使用される最初のクラスであり、プログラミングを通じてデータベースにアクセスするための最初のステップでもあります。次に、Connectionクラスの一般的なプロパティとメソッド、およびSQLServerデータベースに接続する方法を見てみましょう。

<!-もっと->

2つの接続クラスの概要

Connectionクラスは、アクセスするデータとアクセス方法に応じて異なる名前を使用し、クラス名はわずかに異なります。SqlConnectionクラスで提供される一般的な属性とメソッドは次のとおりです。

属性またはメソッド 説明
SqlConnection() パラメータの構築方法はありません
SqlConnection(文字列接続文字列) パラメータを使用した構築方法、パラメータとしてのデータベース接続文字列
接続文字列 プロパティ、データベースの接続文字列を取得または設定します
状態 プロパティ、現在のデータベース状態を取得します。列挙型Connectionstateはその値を提供します
ConnectionTimeout 接続しようとしたときに試行を終了してエラーを生成する前に待機する時間を取得するプロパティ
情報源 接続するSQLServerのインスタンス名を取得するためのプロパティ
開いた() データベース接続を開く方法
閉じる() データベース接続を閉じる方法
BeginTransaction() データベーストランザクションを開始する方法

3つはConnectionクラスを使用してデータベースに接続します

データベース接続文字列を作成する方法はたくさんありますが、一般的に使用される2つの方法を次に示します。

3.1方法1

サーバー=サーバー名/データベースインスタンス名; uid =ログイン名; pwd =パスワード;データベース=データベース名

その中で:

  • server:データベースにアクセスするためのデータベースインスタンスの名前を指定するために使用されます。サーバー名は、データベースが配置されているIPアドレスまたはコンピューター名に置き換えることができます。ローカルデータベースにアクセスする場合は、代わりに「。」を使用できます。たとえば、マシンのデフォルトデータベースに接続している場合は、「server =」と書くことができます。

  • uid:指定されたSQL Serverデータベースインスタンスへのログインに使用されるユーザー名。これは、saユーザーなどのSQLServer認証モードでデータベースにログインするときに使用されるユーザー名と同等です。

  • pwd:uidユーザーに対応するパスワード

  • データベース:データベースインスタンスの下のデータベース名にアクセスします

3.22番目の方法

データソース=サーバー名\データベースインスタンス名;初期カタログ=データベース名;ユーザーID =ユーザー名;パスワード=パスワード

その中で:

  • データソース:最初の接続文字列のデータベース属性の表現と同じで、データベースが配置されているサーバー名とデータベースインスタンス名を指定するために使用されます。接続がマシンのデフォルトのデータベースインスタンスである場合は、「データソース=」と記述します。形

  • 初期カタログ:最初の接続文字列の文言のデータベース属性の文言と同じで、データソースのデータベースインスタンスの下にあるデータベース名を指定するために使用されます

  • ユーザーID:最初の接続文字列の書き込み方法のuid属性と同じで、データベースにログインするためのユーザー名を指定するために使用されます

  • パスワード:最初の接続文字列の書き込み方法のpwd属性と同じで、ユーザーIDユーザー名に対応するパスワードを指定するために使用されます。

4つの接続関連操作

データベース接続文字列の準備が完了したら、SqlConnectionクラスを使用してデータベースに接続できます。これは、次の3つの手順で完了します。

4.1SqlConnectionクラスのインスタンスを作成します

SqlConnectionクラスの場合、上記の表に2つの構築メソッドが用意されています。通常、stringパラメーターを使用した構築メソッドを使用して、データベースの接続文字列を設定し、インスタンスを作成します。ステートメントの形式は次のとおりです。

SqlConnection接続オブジェクト名=新しいSqlConnection(データベース接続文字列);

4.2データベース接続を開く

SqlConnection接続クラスのインスタンスを作成した後、データベースは接続されていません。データベース接続を開くには、接続クラスのOpenメソッドを使用する必要があります。

Openメソッドを使用してデータベース接続を開く場合、データベースの接続文字列が正しくないか、データベースのサービスが閉じていると、データベースを開かないことに関連する例外が発生するため、例外を処理するには例外処理が必要です。

データベース接続を開くためのステートメントの形式は次のとおりです。

接続オブジェクト名.Open();

4.3データベース接続を閉じます

データベースの操作が終了したら、データベースへの接続を切断して、データベース接続のリソースを節約する必要があります。

データベース接続を閉じるためのステートメントフォームは次のとおりです。

接続オブジェクト名.Close();

データベース接続を開くときに例外処理を使用する場合は、データベース接続を閉じるステートメントを例外処理のfinallyステートメントに入れて、リソースを解放するために例外が発生したかどうかに関係なく、データベース接続が切断されるようにします。

例外処理を使用してリソースを解放することに加えて、usingを使用してリソースを解放することもできます。具体的な文は次のとおりです。

using(SqlConnection connection object name = new SQLConnection(database connection string))
{ 
    //データベース接続を開く
    //データベース操作を閉じるためのステートメント
}

usingキーワードの主な用途は2つあります。1つは名前名を参照することで、もう1つはアンマネージリソースオブジェクトを作成することです。

.NETプラットフォーム上のリソースは、マネージドリソースとアンマネージドリソースに分けられます。マネージドリソースは、宣言された変数など、メモリ内のリソースを管理するために.NETフレームワークによって直接管理されます。アンマネージドリソースは、.NETフレームワークによって直接管理することはできません。管理では、データベースリソースやオペレーティングシステムリソースなどのリソースを解放するためにコードを使用する必要があります。

5つの例

5.1インスタンス1は、ネイティブSQL Serverデータベースとの接続を作成し、例外処理を使用します

5.1.1分析

SQL Serverデータベースへの接続に使用されるユーザー名はsa、パスワードはpwdpwd、接続されたデータベースはtestです。

5.1.2データベーステストの作成

Microsoft SQL Server Management Studioを開き、ログイン後、データベースを右クリックし、新しいデータベースを作成して、作成したデータベース名を入力します

 

5.1.3コード

Windowsフォームアプリケーションを作成し、フォームにボタンを配置し、ボタンクリックイベントに次のコードを追加します

private void button1_Click(object sender、EventArgs e)
 { 
   //データベース接続文字
   列を書き込む// string connStr = "Data source =。; Initial Catalog = test; User ID = sa; Password = root"; 
   string connStr = "Data source = 。; Initial Catalog = test; Integrate Security = True "; 
   // var connStr =" server =。;uid = sa; pwd = root; database = test "; 
   // 
    SqlConnectionのインスタンスを作成しますSqlConnectionconn = null; 
    try 
      { 
         conn = new SqlConnection(connStr); 
         conn.Open(); 
         MessageBox.Show( "データベース接続に成功しました!"); 
       } 
      catch(Exception ex)
      { 
           MessageBox.Show( "データベース接続に失敗しました!" + ex.Message); 
      }
      最後に
      {
         if(conn!= null)
         { 
            //データベースを閉じる
            conn.Close(); 
          } 
       } 
}

5.1.4エフェクト画像

 

5.2例2前の例に基づいて、usingキーワードを使用してリソースを解放します。

5.2.1コード

private void button1_Click(object sender、EventArgs e)
{ 
   //データベース接続文字
   列を書き込む// string connStr = "Data source =。; Initial Catalog = test; User ID = sa; Password = root"; 
   // string connStr = "Data source =。; Initial Catalog = test; Integrate Security = True "; 
   var connStr =" server =。; uid = sa; pwd = root; database = test "; 
   // SqlConnectionのインスタンスを作成
          
   try 
      { 
         using(SqlConnection conn = new SqlConnection(connStr))
         conn.Open(); 
         MessageBox.Show( "データベース接続に成功しました!"); 
       } 
       catch(Exception ex)
       { 
          MessageBox.Show( "データベース接続に失敗しました!" + ex.Message); 
       } 
 }

おすすめ

転載: blog.csdn.net/Calvin_zhou/article/details/108015150