DBHelperヘルパー
1.役割:C#アプリケーションとSQLデータベースとの対話パブリックメソッドSERVER(CRUD)抽出し、簡単に呼び出し。
2.要件:C#のエントリ・レベルのプログラマは、書き込みに精通している必要があり
3.構成:3つのパブリックメソッド。
①ExecuteNonQueryCRUD
②ExecuteScalarクエリは、単一の独立したを返します。
③ExecuteQueryクエリは、複数の列や行を返します
4.コードの詳細:
パブリック クラスDBHelper { パブリック 静的 文字列 strConn = " SERVER = 01D023101509880; UID = CG; PWD = abc.1234;データベース= QQChat " ; /// <要約> /// 追加、一般的な手順を変更、削除 /// </要約> /// <PARAM NAME = "SQL"> SQL文</ param>の /// <PARAM NAME = "パラス"> オプションのパラメータ</ param>の /// <戻り値> </戻り値> パブリック 静的の int型 ExecuteNonQuery(文字列の SQL、paramsはSqlParameter []パラス) { int型=結果0 ; // 自動的に閉じ使用リソース、搬送例外処理機構を 使用して(SqlConnectionのコン= 新しい新しいSqlConnectionオブジェクト(strConn)) { conn.Open(); // オープン接続 SqlCommandオブジェクトのコマンド= 新しい新しい SqlCommandオブジェクト(SQL、コネチカット)を; / / ラン command.Parameters.AddRange(パラス); // パラメータを追加 結果= command.ExecuteNonQuery(); // 行う } 戻り検索結果を、 } /// <まとめ> /// クエリ単一行場合列 /// </要約> /// ます。<param name = "SQL"> SQL文</ param>の /// <PARAM NAME = "パラス"> オプションのパラメータ</ param>の /// <戻り値> </戻り値> 公共 静的オブジェクトは、ExecuteScalar(文字列の SQL、paramsはSqlParameter []パラス) { オブジェクト結果; // 自動的に閉じ使用リソース、搬送例外処理機構を 使用して(SqlConnectionのコン= 新しい新しいSqlConnectionオブジェクト(strConn)) { conn.Open(); // オープンを接続 SqlCommandオブジェクトのコマンドを= 新しい新しい SqlCommandオブジェクト(SQL、コネティカット)。//ファイル名を指定して実行 command.Parameters.AddRange(パラス); // パラメータを追加し ます。Result = command.ExecuteScalar(); // 実行 } 戻りの検索結果を; } /// <要約> /// クエリが返す行と列、一般的なアップグレード未知のオブジェクトタイプ、ジェネリッククラス、ジェネリックメソッド /// </要約> /// ます。<param name = "SQL"> SQL文</ param>の /// <PARAM NAME = "パラス"> オプションのパラメータ< / param>の /// <戻り値> </戻り値> パブリック 静的リスト<T>のexecuteQuery <T>(文字列の SQL、paramsはSqlParameter []パラス) { リスト <T> =一覧新しい新しいリスト<T>(); // ジェネリックコレクションオブジェクトを作成 使用して(SqlConnectionのコン= 新しい新しいSqlConnectionオブジェクト(strConnを)) { conn.Open(); // 開いている接続 SqlCommandオブジェクトのコマンド= 新しい新しい SqlCommandオブジェクト(SQL 、コネチカット州); // 実行 command.Parameters.AddRange(パラス); // にパラメータを追加 使用(= Command.ExecuteReader SqlDataReaderのリーダー())// カーソルを実行 { タイプtype = typeof演算(T)//検出タイプ // の実装ダウン次に ながら(reader.Read()) { // オブジェクトを作成 T = T (T)Activator.CreateInstance(タイプ); foreachの(PI PropertyInfo で type.GetProperties())// 反射型PropertyInfoを基本クラスのプロパティを取得 { pi.SetValue(T、リーダ[pi.Name] であるがDBNull?ヌル:リーダ[pi.Name]); // オブジェクトのカーソルに割り当てられたORM値は } list.add(T); } } } 戻りリスト。 } } }