王志伟
3/2/2020 - 1:41 PM

ACESS数据库操作

 class DbSQLHelper
    {
        private static string constr = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Database.mdb";

        /// <summary>
        /// 增删改
        /// </summary>
        /// <param name="cmdText">sql</param>
        /// <param name="cmdType"></param>
        /// <param name="parameters">参数</param>
        /// <returns>修改了几行</returns>
        public static int ExcuteNonQuery(string cmdText, CommandType cmdType, params OleDbParameter[] parameters)
        {
            using (OleDbConnection connection = new OleDbConnection(constr))
            {
                using (OleDbCommand cmd = new OleDbCommand(cmdText, connection))
                {
                    cmd.CommandType = cmdType;
                    connection.Open();
                    if (parameters.Length > 0)
                    {
                        cmd.Parameters.AddRange(parameters);
                    }
                    return cmd.ExecuteNonQuery();
                }
            }
        }

        /// <summary>
        /// 获取一个数据<T>
        /// </summary>
        /// <typeparam name="T">数据类型</typeparam>
        /// <param name="cmdText">sql</param>
        /// <param name="cmdType"></param>
        /// <param name="parameters">参数</param>
        /// <returns>任意类型的数据</returns>
        public static T ExcuteScalar<T>(string cmdText, CommandType cmdType, params OleDbParameter[] parameters)
        {
            using (OleDbConnection connection = new OleDbConnection(constr))
            {
                using (OleDbCommand cmd = new OleDbCommand(cmdText, connection))
                {
                    cmd.CommandType = cmdType;
                    connection.Open();
                    if (parameters.Length > 0)
                    {
                        cmd.Parameters.AddRange(parameters);
                    }
                    return (T)cmd.ExecuteScalar();
                }
            }
        }

        /// <summary>
        /// 读取数据表
        /// </summary>
        /// <param name="cmdText">sql</param>
        /// <param name="cmdType"></param>
        /// <param name="parameters">参数</param>
        /// <returns>SqlDataReader</returns>
        public static OleDbDataReader ExcuteReader(string cmdText, CommandType cmdType, params OleDbParameter[] parameters)
        {
            OleDbConnection connection = new OleDbConnection(constr);
            using (OleDbCommand cmd = new OleDbCommand(cmdText, connection))
            {
                cmd.CommandType = cmdType;
                connection.Open();
                if (parameters.Length > 0)
                {
                    cmd.Parameters.AddRange(parameters);
                }
                return cmd.ExecuteReader(CommandBehavior.CloseConnection);
            }
        }

        /// <summary>
        /// 获取临时数据库
        /// </summary>
        /// <param name="cmdText"></param>
        /// <param name="cmdType"></param>
        /// <param name="parameters"></param>
        /// <returns></returns>
        public static DataSet GetDataSet(string cmdText, CommandType cmdType, params OleDbParameter[] parameters)
        {
            DataSet ds = new DataSet();
            using (OleDbConnection connection = new OleDbConnection(connString))
            {
                using (OleDbCommand cmd = new OleDbCommand(cmdText, connection))
                {
                    cmd.CommandType = cmdType;
                    using (OleDbDataAdapter adapter = new OleDbDataAdapter(cmd))
                    {
                        if (parameters.Length > 0)
                        {
                            adapter.SelectCommand.Parameters.AddRange(parameters);
                        }
                        adapter.Fill(ds);
                    }
                }
            }
            return ds;
        }

        /// <summary>
        /// 获取临时数据表
        /// </summary>
        /// <param name="cmdText">OleDb</param>
        /// <param name="cmdType"></param>
        /// <param name="parameters">参数</param>
        /// <returns></returns>
        public static DataTable GetDataTable(string cmdText, CommandType cmdType, params OleDbParameter[] parameters)
        {
            return GetDataSet(cmdText, cmdType, parameters).Tables[0];
        }

    }