调用DbHelperACE获取OleDbDataReader后手动关闭连接方法

来源:互联网 发布:button click 执行PHP 编辑:程序博客网 时间:2024/06/02 22:43

数据访问抽象基础类(ACCESS) DbHelperACE中有ExecuteReader(string strSQL)方法:

        /// <summary>            /// 执行查询语句,返回OleDbDataReader(使用该方法切记要手工关闭OleDbDataReader和连接)            /// </summary>            /// <param name="strSQL">查询语句</param>            /// <returns>SqlDataReader</returns>            public static OleDbDataReader ExecuteReader(string strSQL)        {            OleDbConnection connection = new OleDbConnection(connectionString);            OleDbCommand cmd = new OleDbCommand(strSQL, connection);            try            {                connection.Open();                OleDbDataReader myReader = cmd.ExecuteReader();                return myReader;            }            catch (System.Data.OleDb.OleDbException e)            {                throw new Exception(e.Message);            }            //finally //不能在此关闭,否则,返回的对象将无法使用                //{                //  cmd.Dispose();                //  connection.Close();                //}              }

这里没提供手工关闭OleDbDataReader和连接的方法。具体调用时如何手工关闭没有例子可查。

我使用以下方法,是否可行待大家讨论。

        public class XXXXCollection : System.Collections.ObjectModel.ObservableCollection<DataItem>        {        }        private XXXXCollection _Collection = GetXXXXData();        public XXXXCollection Collection        {            get            {                return this._Collection;            }        }public static XXXXCollection GetXXXXData()  //获取数据         {            OleDbConnection con = new OleDbConnection(DbHelperACE.connectionString);            string sql = string.Format(……);            XXXXCollection xxxx = new XXXXCollection();            OleDbDataReader myreader = DbHelperACE.ExecuteReader(sql);            while (myreader.Read())            {                DataItem axxxx = new DataItem(……);                xxxx.Add(axxxx);            }            con.Open();            OleDbCommand cmd = new OleDbCommand("",con);            myreader = cmd.ExecuteReader(CommandBehavior.CloseConnection); //手工关闭OleDbDataReader和连接            cmd.Dispose();            con.Close();            return xxxx;        }


0 0
原创粉丝点击