/// <summary> /// SQLServer_SQL実行メソッド_返り値をモデル指定 /// SELECTのみ対応 /// </summary> public static List <T> SELECT_Model <T>(string sqlFileId, string sqlId, dynamic parameter = null) { //接続文字列の取得 var ConnectionString = FetchConnectionString(); //SQLの取得 string SQL = string.Empty; SQL = new QueryXmlBuilder <dynamic>(sqlFilePath, sqlFileId, sqlId, parameter).GetQuery(); List <T> returnObject; //データベース接続の準備 using (var connection = new SqlConnection(ConnectionString)) using (var command = connection.CreateCommand()) { try { Logger.Write(string.Format("[SQL]{0} Params:{1}", SQL, Convert.ToString((object)parameter))); // データベースの接続開始 connection.Open(); // 実行するSQLの準備 returnObject = parameter == null?connection.Query <T>(SQL).ToList() : connection.Query <T>(SQL, (Object)parameter).ToList(); //★★↑返り値はList<T>になるので、普通にモデルクラス } catch (Exception exception) { Console.WriteLine(exception.Message); throw; } } return(returnObject); }
/// <summary> /// SQLServer_SQL実行メソッド /// </summary> public static dynamic ExecuteSQL(string sqlFileId, string sqlId, dynamic parameter = null, DBAccessType dbAccessType = DBAccessType.Select) { //接続文字列の取得 var ConnectionString = FetchConnectionString(); //SQLの取得 string SQL = string.Empty; switch (dbAccessType) { case DBAccessType.Select: SQL = new QueryXmlBuilder <dynamic>(sqlFilePath, sqlFileId, sqlId, parameter).GetQuery(); break; case DBAccessType.Insert: SQL = new QueryXmlBuilder <dynamic>(sqlFilePath, sqlFileId, sqlId, parameter).GetQuery(SqlType.insert); break; case DBAccessType.Update: SQL = new QueryXmlBuilder <dynamic>(sqlFilePath, sqlFileId, sqlId, parameter).GetQuery(SqlType.update); break; case DBAccessType.Delete: SQL = new QueryXmlBuilder <dynamic>(sqlFilePath, sqlFileId, sqlId, parameter).GetQuery(SqlType.delete); break; } dynamic returnObject; //データベース接続の準備 using (var connection = new SqlConnection(ConnectionString)) using (var command = connection.CreateCommand()) { try { Logger.Write(string.Format("[SQL]{0} Params:{1}", SQL, Convert.ToString((object)parameter))); // データベースの接続開始 connection.Open(); if (dbAccessType == DBAccessType.Select) { // 実行するSQLの準備 returnObject = parameter == null?connection.Query(SQL).ToList() : connection.Query(SQL, (Object)parameter).ToList(); //★★↑返り値はList<object>で、一つのobjectの実体はDictionary型となっており、 //Keyにカラム名(物理名)、Valueに値が入っている } else { returnObject = parameter == null?connection.Execute(SQL) : connection.Execute(SQL, (Object)parameter); } } catch (Exception exception) { Console.WriteLine(exception.Message); throw; } } return(returnObject); }