- ///---------------------------------------------------------------------------
- /// 機能ID :DataAccess
- ///
- /// 機能名 :DB操作クラス
- ///
- /// システム :バッチもばっちり
- ///
- /// 作成日 :2008年6月3日
- ///
- /// 作成者 :
- ///
- /// 機能説明 :DB操作機能を提供する。
- ///---------------------------------------------------------------------------
- using System;
- using System.Configuration;
- using System.Data;
- using System.Collections;
- using System.Data.OleDb;
- using MySql.Data.MySqlClient;
- namespace CommonPrj
- {
- public class DBAccess
- {
- // DB接続情報:MySQL
- private readonly string m_strConnectionString =
- ConfigurationManager.ConnectionStrings["SQLConnString"].ConnectionString;
- // DB接続情報:EXCEL
- private readonly string m_strExcelConnectionString =
- ConfigurationManager.ConnectionStrings["ExcelConnString"].ConnectionString;
- ///--------------------------------------------------------------------------
- ///
- /// 機能 :SQL文の生成
- ///
- /// 返り値 :変換した文字列
- ///
- /// 引き数 :p_strSql - テンプレートSQL文
- /// p_strParam - パラメータ配列
- ///
- /// 作成日 :2008年6月3日
- ///
- /// 作成者 :
- ///
- /// 機能説明 :SQL文の生成を行う。
- ///
- /// 注意事項 :なし
- ///
- ///--------------------------------------------------------------------------
- public string CreateSQLText(string p_strSql, string[] p_strParam)
- {
- // SQL文の生成を行う。
- return string.Format(p_strSql, p_strParam);
- }
- ///--------------------------------------------------------------------------
- ///
- /// 機能 :データ追加/更新/削除
- ///
- /// 返り値 :更新されたレコード件数
- ///
- /// 引き数 :p_strCmdText - SQL文
- ///
- /// 作成日 :2008年6月3日
- ///
- /// 作成者 :
- ///
- /// 機能説明 :データ追加/更新/削除
- ///
- /// 注意事項 :なし
- ///
- ///--------------------------------------------------------------------------
- public int ExecuteNonQuery(string p_strCmdText)
- {
- MySqlConnection conn= new MySqlConnection(m_strConnectionString);
- try
- {
- MySqlCommand cmd = new MySqlCommand();
- PrepareCommand(conn, null, cmd, p_strCmdText);
- // データ更新を実行
- int val = cmd.ExecuteNonQuery();
- // SQL文に関するログを出力
- LogAccess.WriteLog(p_strCmdText);
- return val;
- }
- catch (Exception ex)
- {
- throw ex;
- }
- finally
- {
- conn.Close();
- }
- }
- ///--------------------------------------------------------------------------
- ///
- /// 機能 :データの一括追加/更新/削除
- ///
- /// 返り値 :なし
- ///
- /// 引き数 :p_objArrList - SQL文リスト
- ///
- /// 作成日 :2008年6月3日
- ///
- /// 作成者 :
- ///
- /// 機能説明 :データの一括追加/更新/削除
- ///
- /// 注意事項 :なし
- ///
- ///--------------------------------------------------------------------------
- public void ExecuteNonQuery(ArrayList p_objArrList)
- {
- MySqlConnection conn = new MySqlConnection(m_strConnectionString);
- MySqlCommand cmd = new MySqlCommand();
- try
- {
- conn.Open();
- MySqlTransaction tr = conn.BeginTransaction();
- // SQL文毎に、検索を実行
- foreach (string cmdText in p_objArrList)
- {
- PrepareCommand(conn,tr,cmd,cmdText);
- cmd.ExecuteNonQuery();
- }
- tr.Commit();
- }
- catch (Exception ex)
- {
- throw ex;
- }
- finally
- {
- conn.Close();
- }
- }
- ///--------------------------------------------------------------------------
- ///
- /// 機能 :データ検索
- ///
- /// 返り値 :取得したのデータセット
- ///
- /// 引き数 :p_strCmdText - SQL文
- ///
- /// 作成日 :2008年6月3日
- ///
- /// 作成者 :
- ///
- /// 機能説明 :データ検索
- ///
- /// 注意事項 :なし
- ///
- ///--------------------------------------------------------------------------
- public DataSet ExecuteDataSet(string p_strCmdText)
- {
- MySqlCommand cmd = new MySqlCommand();
- MySqlConnection conn = new MySqlConnection(m_strConnectionString);
- MySqlDataAdapter da = new MySqlDataAdapter();
- DataSet ds = new DataSet();
- try
- {
- PrepareCommand(conn, null, cmd, p_strCmdText);
- da.SelectCommand = cmd;
- da.Fill(ds);
- // SQL文に関するログを出力
- LogAccess.WriteLog(p_strCmdText);
- return ds;
- }
- catch (Exception ex)
- {
- throw ex;
- }
- finally
- {
- conn.Close();
- }
- }
- ///--------------------------------------------------------------------------
- ///
- /// 機能 :データ検索
- ///
- /// 返り値 :取得したのデータセット
- ///
- /// 引き数 :p_strCmdText - SQL文
- /// :p_LogFlag - ログファイル出力有無 True - 有 False - 無
- ///
- /// 作成日 :2008年6月3日
- ///
- /// 作成者 :
- ///
- /// 機能説明 :データ検索
- ///
- /// 注意事項 :なし
- ///
- ///--------------------------------------------------------------------------
- public DataSet ExecuteDataSet(string p_strCmdText,bool p_LogFlag)
- {
- MySqlCommand cmd = new MySqlCommand();
- MySqlConnection conn = new MySqlConnection(m_strConnectionString);
- MySqlDataAdapter da = new MySqlDataAdapter();
- DataSet ds = new DataSet();
- try
- {
- PrepareCommand(conn, null, cmd, p_strCmdText);
- da.SelectCommand = cmd;
- da.Fill(ds);
- // ログファイル出力の場合
- if (p_LogFlag)
- {
- // SQL文に関するログを出力
- LogAccess.WriteLog(p_strCmdText);
- }
- return ds;
- }
- catch (Exception ex)
- {
- throw ex;
- }
- finally
- {
- conn.Close();
- }
- }
- ///--------------------------------------------------------------------------
- ///
- /// 機能 :データ単値取得
- ///
- /// 返り値 :取得したの値
- ///
- /// 引き数 :p_strCmdText - SQL文
- ///
- /// 作成日 :2008年6月3日
- ///
- /// 作成者 :
- ///
- /// 機能説明 :データ単値取得する。
- ///
- /// 注意事項 :なし
- ///
- ///--------------------------------------------------------------------------
- public object ExecuteScalar(string p_strCmdText)
- {
- MySqlCommand cmd = new MySqlCommand();
- MySqlConnection conn = new MySqlConnection(m_strConnectionString);
- try
- {
- PrepareCommand(conn,null,cmd,p_strCmdText);
- //検索を実行
- object val = cmd.ExecuteScalar();
- //SQL文に関するログを出力
- LogAccess.WriteLog(p_strCmdText);
- return val;
- }
- catch (Exception ex)
- {
- throw ex;
- }
- finally
- {
- conn.Close();
- }
- }
- ///--------------------------------------------------------------------------
- ///
- /// 機能 :コメント変数を設定
- ///
- /// 返り値 :なし
- ///
- /// 引き数 :conn -DB接続オブジェクト
- /// trans -トランザクションオブジェクト
- /// cmd -コマンドオブジェクト
- /// cmdText - SQL文
- ///
- /// 作成日 :2008年6月3日
- ///
- /// 作成者 :
- ///
- /// 機能説明 :コメント変数を設定する。
- ///
- /// 注意事項 :なし
- ///
- ///--------------------------------------------------------------------------
- private void PrepareCommand(MySqlConnection conn, MySqlTransaction trans,
- MySqlCommand cmd, string cmdText)
- {
- //DB接続していない場合、接続する
- if (conn.State != ConnectionState.Open)
- {
- conn.Open();
- }
- cmd.Connection = conn;
- cmd.CommandText = cmdText;
- //トランザクション有の場合
- if (trans != null)
- {
- cmd.Transaction = trans;
- }
- cmd.CommandType = CommandType.Text;
- }
- ///--------------------------------------------------------------------------
- ///
- /// 機能 :Excelデータ検索
- ///
- /// 返り値 :取得したのDataTable
- ///
- /// 引き数 :p_strFilePath - Excelファイルのパス
- /// p_strCmdText - SQL文
- ///
- /// 作成日 :2008年6月3日
- ///
- /// 作成者 :
- ///
- /// 機能説明 :Excelデータ検索
- ///
- /// 注意事項 :なし
- ///
- ///--------------------------------------------------------------------------
- public DataTable ExecuteExcelData(string p_strFilePath, string p_strCmdText)
- {
- OleDbConnection conn = new OleDbConnection(m_strExcelConnectionString + p_strFilePath +
- ";Extended Properties=/"Excel 8.0;HDR=YES;IMEX=1/"");
- OleDbDataAdapter cmd = new OleDbDataAdapter(p_strCmdText, conn);
- DataTable dt = new DataTable();
- try
- {
- conn.Open();
- cmd.Fill(dt);
- return dt;
- }
- catch (Exception ex)
- {
- throw ex;
- }
- finally
- {
- conn.Close();
- }
- }
- ///--------------------------------------------------------------------------
- ///
- /// 機能 :Excelワークシート名の取得処理
- ///
- /// 返り値 :p_strFilePath - Excelファイルのパス
- ///
- /// 引き数 :なし
- ///
- /// 作成日 :2008年6月3日
- ///
- /// 作成者 :
- ///
- /// 機能説明 :Excelワークシート名の取得処理を行う。
- ///
- /// 注意事項 :なし
- ///
- ///--------------------------------------------------------------------------
- public string[] GetExcelSheetName(string p_strFilePath)
- {
- OleDbConnection conn = new OleDbConnection(m_strExcelConnectionString + p_strFilePath +
- ";Extended Properties=/"Excel 8.0;HDR=YES;IMEX=1/"");
- try
- {
- conn.Open();
- DataTable dtSchema = conn.GetOleDbSchemaTable(
- OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
- string[] strTableName = new string[dtSchema.Rows.Count];
- for (int i = 0; i < dtSchema.Rows.Count; i++)
- {
- strTableName[i] = dtSchema.Rows[i]["TABLE_NAME"].ToString();
- }
- return strTableName;
- }
- catch (Exception ex)
- {
- throw ex;
- }
- finally
- {
- conn.Close();
- }
- }
- }
- }
MySql数据库操作类
最新推荐文章于 2021-01-18 21:23:15 发布