C#如何连接ACCESS数据库,并在里面去数据!!

来源:互联网 发布:仿720云全景源码 编辑:程序博客网 时间:2024/04/29 03:32
using System.Data;
using System.Data.OleDb;
private OleDbConnection con;
/// <summary>
        /// 打开数据库连接
        /// </summary>
        /// <param name="DBpath">数据库路径(包括数据库名)</param>
        private void Open(String DBpath)
        {          
            if(con == null)
                con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + DBpath);
            if (con.State == ConnectionState.Closed)
                con.Open();
        }

/// <summary>
        /// 创建一个命令对象并返回该对象
        /// </summary>
        /// <param name="sqlStr">数据库语句</param>
        /// <param name="file">数据库所在路径</param>
        /// <returns>OleDbCommand</returns>
        private OleDbCommand CreateCommand(string sqlStr, string file)
        {
            Open(file);
            OleDbCommand cmd = new OleDbCommand();
            cmd.CommandType = CommandType.Text;
            cmd.CommandText = sqlStr;
            cmd.Connection = con;
            return cmd;
        }
        /// <summary>
        /// 执行
        /// </summary>
        /// <param name="sqlStr">SQL语句</param>
        /// <param name="file">数据库所在路径</param>
        /// <returns>返回数值当执行成功时候返回true,失败则返回false</returns>
        public bool ExecuteNonQury(string sqlStr, string file)
        {
            OleDbCommand cmd = CreateCommand(sqlStr, file);
            int result = cmd.ExecuteNonQuery();
            if (result == -1 | result == 0)
            {
                cmd.Dispose();
                Close();
                return false;
            }
            else
            {
                cmd.Dispose();
                Close();
                return true;
            }
/// <summary>
        /// 执行数据库查询
        /// </summary>
        /// <param name="sqlStr">查询语句</param>
        /// <param name="tableName">填充数据集表格的名称</param>
        /// <param name="file">数据库所在路径</param>
        /// <returns>查询的数据集</returns>
        public DataSet GetDataSet(string sqlStr, string file)
        {
            DataSet ds = new DataSet();
            OleDbCommand cmd = CreateCommand(sqlStr, file);
            OleDbDataAdapter dataAdapter = new OleDbDataAdapter(cmd);
            dataAdapter.Fill(ds);
            cmd.Dispose();
            Close();
            dataAdapter.Dispose();
            return ds;
        }
/// <summary>
        /// 生成一个数据读取器OleDbDataReader并返回该OleDbDataReader
        /// </summary>
        /// <param name="sqlStr">数据库查询语句</param>
        /// <returns>返回一个DataReader对象</returns>
        public OleDbDataReader GetReader(string sqlStr, string file)
        {
            OleDbCommand cmd = CreateCommand(sqlStr, file);
            OleDbDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection);
            //CommadnBehavior.CloseConnection是将于DataReader的数据库链接关联起来
            //当关闭DataReader对象时候也自动关闭链接
            return reader;
        }

/// <summary>
        /// 关闭数据库
        /// </summary>
        public void Close()
        {
            if (con != null)
                con.Close();
            con = null;
        }

传进来的路径是带上Access数据库名的
0 0
原创粉丝点击