Example #1
0
        /// <summary>
        /// 执行SQL 语句,并返回 <see cref="DataSet"/> 对象
        /// </summary>
        /// <param name="cmd">SQL 命令</param>
        /// <returns></returns>
        public DataSet ExecuteDataSet(IDbCommand cmd)
        {
            IDataReader reader = null;
            DataSet     result = null;

            try
            {
                reader = this.ExecuteReader(cmd);
                result = new XDataSet();
                result.Load(reader, LoadOption.OverwriteChanges, null, new DataTable[] { });
            }
            finally
            {
                if (cmd != null)
                {
                    cmd.Dispose();
                }
                if (reader != null)
                {
                    reader.Dispose();
                }
                this.InternalDispose();
            }

            return(result);
        }
Example #2
0
        /// <summary>
        /// 执行SQL 语句,并返回 <see cref="DataSet"/> 对象
        /// </summary>
        /// <param name="command">SQL 命令</param>
        /// <returns></returns>
        public virtual async Task <DataSet> ExecuteDataSetAsync(IDbCommand command)
        {
            IDataReader reader = null;
            DataSet     result = null;

            try
            {
                reader = await this.ExecuteReaderAsync(command);

                result = new XDataSet();
                result.Load(reader, LoadOption.OverwriteChanges, null, new DataTable[] { });
            }
            finally
            {
                if (command != null)
                {
                    command.Dispose();
                }
                if (reader != null)
                {
                    reader.Dispose();
                }
                this.InternalDispose();
            }
            return(result);
        }
Example #3
0
        /// <summary>
        /// 获得数据集合
        /// </summary>
        /// <param name="sql"></param>
        /// <param name="msg"></param>
        /// <returns></returns>
        public static DataSet GetDataSet(string sql, out string msg)
        {
            DateTime beforDT = DateTime.Now;

            try
            {
                #region 数据合法性校验

                if (string.IsNullOrEmpty(sql))
                {
                    msg = "Sql语句为空!";
                    return(null);
                }

                if (string.IsNullOrEmpty(ConnectionString))
                {
                    msg = "数据库链接串为空!";
                    return(null);
                }

                #endregion

                #region 获得数据

                using (IDbConnection connection = new MySqlConnection(ConnectionString))
                {
                    msg = "数据获取成功!";
                    DataSet     dataSet = new XDataSet();
                    IDataReader reader  = connection.ExecuteReader(sql);
                    dataSet.Load(reader, LoadOption.OverwriteChanges, null, new DataTable[] { });

                    Logger.Info("查询开始==========================================================");
                    Logger.Info("查询时间:" + DateTime.Now.Subtract(beforDT).TotalMilliseconds.ToString() + " 毫秒");
                    Logger.Info("GetDataSet()请求SQL:" + sql);
                    Logger.Info("查询结束==========================================================");

                    return(dataSet);
                }

                #endregion
            }
            catch (Exception ex)
            {
                msg = ex.Message;
                Logger.Error("异常信息开始==========================================================");
                Logger.Error("查询时间:" + DateTime.Now.Subtract(beforDT).TotalMilliseconds.ToString() + " 毫秒");
                Logger.Error("GetDataSet()请求SQL:" + sql);
                Logger.Error("GetDataSet()异常信息:" + ex);
                Logger.Error("异常信息结束==========================================================");
                return(null);
            }
        }
        /// <summary>
        /// 执行SQL 语句,并返回 <see cref="DataSet"/> 对象
        /// </summary>
        /// <param name="cmd">SQL 命令</param>
        /// <param name="transaction">事务</param>
        /// <returns></returns>
        public DataSet ExecuteDataSet(IDbCommand cmd)
        {
            IDataReader   reader = null;
            IDbConnection conn   = null;
            DataSet       ds     = null;

            try
            {
                reader = this.ExecuteReader(cmd);
                conn   = cmd != null ? cmd.Connection : null;
                ds     = new XDataSet();
                ds.Load(reader, LoadOption.OverwriteChanges, null, new DataTable[] { });
            }
            finally
            {
                Dispose(cmd, reader, conn);
            }

            return(ds);
        }