首页 > 学院 > 开发设计 > 正文

DataAccess SqlHelper

2019-11-17 03:09:47
字体:
来源:转载
供稿:网友

Dataaccess SqlHelper

   /// <summary>    /// 数据访问基类    /// </summary>    public abstract class DataAccess : MarshalByRefObject    {        /// <summary>        /// LifetimeService        /// </summary>        /// <returns>object</returns>        public override object InitializeLifetimeService()        {            return null;        }        PRotected string cnnstr = "";        protected DataAccess()        {        }        /// <summary>        /// 获取压缩传输DataTable        /// </summary>        /// <param name="aSQL">SQL</param>        /// <param name="aParameters">Parameters</param>        /// <returns>byte[]</returns>        public byte[] GetTableData(string aSQL, Dictionary<string, object> aParameters)        {            return DataCompression.CompressionDataTable(GetDataTable(aSQL,aParameters));        }        /// <summary>        /// 保存压缩数据表        /// </summary>        /// <param name="aDataTable">DataTable</param>        /// <param name="aSQL">Sql</param>        /// <returns>int</returns>        public int SaveDataTable(byte[] aDataTable, string aSQL)        {            return SaveTable(DataCompression.DecompressionxmlDataTable(aDataTable), aSQL);        }        /// <summary>        /// 创建System.Data.Common.DbCommand        /// </summary>        /// <param name="sql">sql</param>        /// <param name="parameters">Dictionary<string, object></param>        /// <returns>System.Data.Common.DbCommand</returns>        private System.Data.Common.DbCommand GetCommand(System.Data.Common.DbConnection connection, string aSQL, Dictionary<string, object> aParameters = null)        {            System.Data.Common.DbCommand cmd = connection.CreateCommand();            cmd.CommandText = application.SQLStatementOpr.PrepareQuery(aSQL);            if (aParameters != null)            {                foreach (KeyValuePair<string, object> item in aParameters)                {                    System.Data.Common.DbParameter parameter = cmd.CreateParameter();                    parameter.ParameterName = item.Key;                    parameter.Value = item.Value;                    cmd.Parameters.Add(parameter);                }            }            return cmd;        }        #region DataAccess Command        /// <summary>        /// 新型查询        /// </summary>        /// <param name="aSQL">sql</param>        /// <param name="aParameters"> Dictionary参数</param>        /// <returns>影响行数</returns>        public int ExcuteCommand(string aSQL, Dictionary<string, object> aParameters)        {            try            {                using (System.Data.Common.DbConnection connection = CreateConnection())                {                    Authorize(aSQL);                    connection.Open();                    return GetCommand(connection, aSQL, aParameters).ExecuteNonQuery();                }            }            catch (Exception e)            {                throw new Exception("ExcuteCommand error of : " + e.Message + aSQL, e);            }        }        /// <summary>        /// 返回第一行第一列值or Null        /// </summary>        /// <param name="aSQL">sql</param>        /// <returns>object</returns>        public object ExecuteScalar(string aSQL)        {            return ExecuteScalar(aSQL, null);        }        /// <summary>        /// 返回第一行第一列值or Null        /// </summary>        /// <param name="aSQL">sql</param>        /// <param name="aParameters">Dictionary参数</param>        /// <returns>object</returns>        public object ExecuteScalar(string aSQL, Dictionary<string, object> aParameters)        {            try            {                using (System.Data.Common.DbConnection connection = CreateConnection())                {                    Authorize(aSQL);                    connection.Open();                    return GetCommand(connection, aSQL, aParameters).ExecuteScalar();                }            }            catch (Exception e)            {                throw new Exception("ExecuteScalar error of : " + e.Message + aSQL, e);            }        }        /// <summary>        /// 查询返回DbDataReader        /// </summary>        /// <param name="aSQL">sql</param>        /// <param name="aParameters">Dictionary参数</param>        /// <returns>System.Data.Common.DbDataReader</returns>        public System.Data.Common.DbDataReader ExecuteReader(string aSQL, Dictionary<string, object> aParameters)        {            System.Data.Common.DbConnection connection = CreateConnection();            connection.Open();            return GetCommand(connection, aSQL, aParameters).ExecuteReader(System.Data.CommandBehavior.CloseConnection);        }        /// <summary>        /// DbDataAdapter Fill DataTable        /// </summary>        /// <param name="aDataTable">DataTable</param>        /// <param name="aSQL">sql</param>        /// <returns>影响行数</returns>        public int Fill(System.Data.DataTable aDataTable, string aSQL)        {            return Fill(aDataTable, aSQL, null);        }        /// <summary>        /// 使用TableName填充        /// </summary>        /// <param name="aDataTable">DataTable</param>        /// <returns>影响行数</returns>        public int Fill(System.Data.DataTable aDataTable)        {            return Fill(aDataTable, "select * from " + aDataTable.TableName);        }        /// <summary>        /// DbDataAdapter Fill DataTable        /// </summary>        /// <param name="aDataTable">DataTable</param>        /// <param name="aSQL">sql</param>        /// <param name="aParameters">Dictionary</param>        /// <returns>影响行数</returns>        public int Fill(System.Data.DataTable aDataTable, string aSQL, Dictionary<string, object> aParameters)        {            try            {                using (System.Data.Common.DbConnection connection = CreateConnection())                {                    Authorize(aSQL);                    connection.Open();                    System.Data.Common.DbDataAdapter adapter = CreateAdapter();                    adapter.SelectCommand = GetCommand(connection, aSQL, aParameters);                    //adapter.MissingSchemaAction = System.Data.MissingSchemaAction.AddWithKey;  //David 2014-5-1                    return adapter.Fill(aDataTable);                }            }            catch (Exception e)            {                throw new Exception("FillDataTable error of : " + e.Message + aSQL, e);            }        }                /// <summary>        /// DbDataAdapter Fill DataTable        /// </summary>        /// <param name="aSQL">sql</param>        /// <returns>DataSet</returns>        public System.Data.DataSet GetDataSet(string aSQL)        {            return GetDataSet(aSQL, null);        }        /// <summary>        /// DbDataAdapter Fill DataTable        /// </summary>        /// <param name="aSQL">sql</param>        /// <param name="aParameters">Dictionary</param>        /// <returns>DataSet</returns>        public System.Data.DataSet GetDataSet(string aSQL, Dictionary<string, object> aParameters)        {            System.Data.DataSet ds = new System.Data.DataSet();            FillDataSet(ds, aSQL, aParameters);            return ds;        }        /// <summary>        /// DbDataAdapter Fill DataTable        /// </summary>        /// <param name="aDataSet">DataSet</param>        /// <returns>影响行数</returns>        public int FillDataSet(System.Data.DataSet aDataSet)        {            int iReturn = 0;            for (int i = 0; i < aDataSet.Tables.Count; i++)
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表