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); } }