Exemplo n.º 1
0
        /// <summary>
        /// 从数据库中读取数据并保存在内存中
        /// </summary>
        /// <param name="sql"></param>
        /// <returns></returns>
        public DataSet GetDataSet(SqlQuery sql)
        {
            if (this._totalOpen)
            {
                this.AddTotalSql(sql.Sql);
            }
            DataSet ds = new DataSet();

            using (DbConnection conn = this.CreateOpenedConnection())
            {
                DbDataAdapter adapter = dbFactory.CreateDataAdapter(conn, sql.Sql);

                if (sql.Parameters != null)
                {
                    adapter.SelectCommand.Parameters.AddRange(sql.ToParams(dbFactory));
                    //自动判断是T-SQL还是存储过程
                    adapter.SelectCommand.CommandType = procedureRegex.IsMatch(sql.Sql)
                        ? CommandType.Text
                        : CommandType.StoredProcedure;
                }

                adapter.Fill(ds);
            }

            return(ds);
        }
Exemplo n.º 2
0
        /// <summary>
        /// 返回查询的第一行第一列值
        /// </summary>
        /// <param name="sql"></param>
        /// <returns></returns>
        public object ExecuteScalar(SqlQuery sql)
        {
            if (this._totalOpen)
            {
                this.AddTotalSql(sql.Sql);
            }

            object obj;

            using (DbConnection conn = this.CreateOpenedConnection())
            {
                DbCommand cmd = this.CreateCommand(sql.Sql);
                cmd.Connection = conn;

                //自动判断是T-SQL还是存储过程
                cmd.CommandType = procedureRegex.IsMatch(sql.Sql)
                    ? CommandType.Text
                    : CommandType.StoredProcedure;

                if (sql.Parameters != null)
                {
                    cmd.Parameters.AddRange(sql.ToParams(dbFactory));
                }
                obj = cmd.ExecuteScalar();
            }

            return(obj);
        }
Exemplo n.º 3
0
        /// <summary>
        /// 读取DataReader中的数据
        /// </summary>
        /// <param name="sql"></param>
        /// <param name="func"></param>
        public void ExecuteReader(SqlQuery sql, DataReaderFunc func)
        {
            if (this._totalOpen)
            {
                this.AddTotalSql(sql.Sql);
            }
            using (DbConnection conn = this.CreateOpenedConnection())
            {
                DbCommand cmd = this.CreateCommand(sql.Sql);
                cmd.Connection = conn;

                //自动判断是T-SQL还是存储过程
                cmd.CommandType = procedureRegex.IsMatch(sql.Sql) ? CommandType.Text : CommandType.StoredProcedure;

                if (sql.Parameters != null)
                {
                    cmd.Parameters.AddRange(sql.ToParams(dbFactory));
                }

                func(cmd.ExecuteReader());
            }
        }