/// <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
                              );
                }
            }
        }
示例#2
0
        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;
        }
示例#3
0
        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
                          );
            }
        }