利用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
}
}

浙公网安备 33010602011771号