/// <summary> /// SQLを発行します。 /// SELECT /// コネクションの接続後に呼び出してください。 /// </summary> /// <param name="queryData">クエリデータを設定します。</param> public void ExecuteQuery( [param: Required] Utility.QueryData queryData ) { // 処理可能か調べます。 this.CheckExecuteConnection(); // SQLiteコマンドを生成します。 using (var cmd = new SQLiteCommand(this.Connection)) { try { // SQLiteCommandにQueryDataを設定します。 this.SetSQLiteCommandToQueryData(cmd: cmd, queryData: queryData); // クエリを実行します。 this.DataReader = cmd.ExecuteReader(); } catch (Exception ex) { // 破棄処理 this.Dispose(); // 例外を発生します。 throw new SQLiteAccessorException( message: ERROR, innerException: ex ); } } }
protected void SetSQLiteCommandToQueryData( [param: Required] SQLiteCommand cmd, [param: Required] Utility.QueryData queryData ) { // nullチェック if (cmd == null) { throw new ArgumentNullException(MethodBase.GetCurrentMethod().Name + Utility.ConstUtili.ERR_SEPA + nameof(cmd)); } if (queryData == null) { throw new ArgumentNullException(MethodBase.GetCurrentMethod().Name + Utility.ConstUtili.ERR_SEPA + nameof(queryData)); } // パラメータクリア cmd.Parameters.Clear(); // パラメータを設定します。 if (queryData.Param != null) { foreach (var item in queryData.Param) { // クエリにKeyが存在した場合は、パラメータを設定します。 if (queryData.Query.IndexOf(item.ParamColumnName) > 0) { cmd.Parameters.Add(new SQLiteParameter(item.ParamColumnName, item.Value)); } } } // クエリを設定します。 cmd.CommandText = queryData.Query; }
public int CreateTable( [param: Required] Utility.QueryData queryData, bool makeSql = true ) { // nullチェック if (queryData == null) { throw new ArgumentNullException(MethodBase.GetCurrentMethod().Name + Utility.ConstUtili.ERR_SEPA + nameof(queryData)); } try { int result = -1; // コマンドを生成します。 using (SQLiteCommand cmd = new SQLiteCommand(this.Connection)) { // SQL文を自動生成します。 if (makeSql) { queryData.MakeSqliteCreateTableSql(); } // SQLiteCommandにQueryDataを設定します。 this.SetSQLiteCommandToQueryData(cmd: cmd, queryData: queryData); // クエリを実行します。 result = cmd.ExecuteNonQuery(); } return(result); } catch (Exception ex) { // 破棄処理 this.Dispose(); // 例外発生 throw new SQLiteAccessorException( message: ERROR, innerException: ex ); } }