利用MVC模式做成的日期记事本

对面向对象的编程初步实践. 此程序抽象出一些需要公用的attribute,property,method作为一个TaskInfomation类  
在此只列出业务层的操作代码:
public class TaskInformation

    {

        ///<summary>

        ///私有字段

        ///</summary>

        #region Data

        protected string nowday;

        protected string datetime;

        protected string content;

        #endregion

       

        ///<summary>

        /// property

        ///</summary>

        public TaskInformation()       

        {

            nowday = System.DateTime.Now.ToShortDateString();

            //datetime = null;

            //content = null;

        }

        ///<summary>

        ///获取字段

        ///</summary>

        #region property

        public string NowDay

        {

            get {

                return nowday;

            }

            set {

                nowday = value;

            }

        }

        public string DateTime

        {

            get {

                return datetime;

            }

            set {

                datetime = value;

            }

        }

        public string Content

        {

            get {

                return content;

            }

            set {

                content = value;

            }

        }

        #endregion

        ///<summary>

        ///读写方法

        ///</summary>

        ///<returns>返回是否读写</returns>

        public virtual bool Write()

        {

            return true;

        }

        public virtual bool Read()

        {

            return true;

        }

    }


在用两种不同的方式来保存数据. 方式继承于TaskInfomation类的公共特性

用文件来操作数据
class
Operate : TaskInformation

    {

        #region Data

        protected string path;

   

        public string Path

        {

            get { return path; }

            set { path = value; }

        }

        #endregion

        public override bool Write()

        {

            //StreamWriter sw = new StreamWriter(path);

            StreamWriter sw = File.AppendText(path);

            sw.WriteLine(this.datetime);

            sw.WriteLine(this.content);

            sw.Close();

            //如果基类方法有方法体。就要实现 因为是继承于基类的

            base.Write();

            return true;

        }

        public override bool Read()

        {

            StreamReader sr = new StreamReader(path);

            datetime = sr.ReadLine();

            content = sr.ReadLine();

            sr.Close();

            base.Read();

            return true;

        }

    }



用Access数据库来操作数据
class
AccessOperate : TaskInformation

    {

        #region Data

        string insertcmd;

        #endregion

        public override bool Write()

        {

            //return base.Write();

            insertcmd = "insert into DayInfo values('" + this.NowDay + this.DateTime + "','" + this.DateTime + "','" + this.Content + "')";

            OleDbConnection dbconn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data source=E:"wsb_winform"11_07_01"Data"MyDB.mdb");

            OleDbCommand Mycommand = new OleDbCommand(insertcmd, dbconn);

            Mycommand.Parameters.Add(new OleDbParameter("nowday",OleDbType.Char,50));

            Mycommand.Parameters["nowday"].Value = this.nowday + this.datetime;

            Mycommand.Parameters.Add(new OleDbParameter("datetime", OleDbType.Char, 20));

            Mycommand.Parameters["datetime"].Value = this.datetime;

            Mycommand.Parameters.Add(new OleDbParameter("content", OleDbType.Char, 100));

            Mycommand.Parameters["content"].Value = this.content;

            Mycommand.Connection.Open();

            try

            {

                Mycommand.ExecuteNonQuery();

                MessageBox.Show("good");

            }

            catch (OleDbException ex)

            {

                MessageBox.Show(ex.Message.ToString());

            }

            finally

            {

                Mycommand.Connection.Close();

            }

            return true;

        }

        public DataSet Read(DataSet ds,string tname)

        {

            string selectcmd = "select datetime,content from DayInfo order by nowday desc";

            OleDbConnection dbconn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data source=E:"wsb_winform"11_07_01"Data"MyDB.mdb");

            dbconn.Open();

            #region DataSet can ravel out the DataReader's problem

            OleDbDataAdapter da = new OleDbDataAdapter();

            da.SelectCommand = new OleDbCommand(selectcmd, dbconn);

            if (ds == null)

            {

                ds = new DataSet();

            }

            da.Fill(ds,tname);

            return ds; //返回结果集

           

            #endregion

     }

    }

posted @ 2007-12-01 19:59  jun.ma  阅读(226)  评论(0)    收藏  举报