//将姓名为酒剑仙的对象中的姓名改为司徒钟,年龄改为40
mDB.Update(new Student(0, "酒剑仙", 0), new Student(0, "司徒钟", 40));
//删除ID为3的对象记录
mDB.Delete(new Student(3, null, 0));
mDB.Commit();
//读取全部的Student记录
objects = mDB.Read(new Student());
foreach (Student obj in objects)
{
Console.WriteLine(obj.ToString());
}
//等待以便观察结果
Console.ReadKey();
}
/// <summary>
/// XmlDB演示类
/// </summary>
public class Student
{
public Student()
{
}
public Student(int mID,string mName,int mAge)
{
this.mID = mID;
this.mName = mName;
this.mAge=mAge;
}
private int mAge;
public int Age
{
get { return mAge; }
set { mAge = value; }
}
private int mID;
public int ID
{
get { return mID; }
set { mID = value; }
}
private string mName;
public string Name
{
get { return mName; }
set { mName = value; }
}
public override string ToString()
{
return string.Format("ID={0},Name={1},Age={2}", this.ID, this.Name,this.Age);
}
}
}
}
怎么样?是不是感觉很简单呢?这个项目采用了Xml作为数据存储的格式,所以最终的数据库文件就是一个Xml文件(这和序列化、反序列化类似),就像下面这样:
<?xml version="1.0" encoding="utf-8"?>
<XmlDB DBName="XmlDB示例程序" DBVersion="1">
<Student>
<Age>18</Age>
<ID>1</ID>
<Name>李逍遥</Name>
</Student>
<Student>
<Age>37</Age>
<ID>2</ID>
<Name>酒剑仙</Name>
</Student>
<Student>
<Age>17</Age>
<ID>3</ID>
<Name>赵灵儿</Name>
</Student>
<Student>
<Age>20</Age>
<ID>4</ID>
<Name>慕容紫英</Name>
</Student>
</XmlDB>
由于假期时间有限,所以目前这个项目只提供了对整型和字符型的基础类型的支持,后面将增加对它基本类型的支持;由于目前部分算法并不完善,所以目前这个项目不支持嵌套的类型属性,等后面有时间的话会逐步完善这个项目的。需要注意的是,在这个项目中整型的默认值为0,字符型的默认值为null,所以请不要给对象赋予这样的属性值,因为这样的对象将被排除,从而造成无法读取对象的问题。每一个对象实体都要默认给出一个不带参数的构造函数,因为内部构造中使用了反射技术,当根据一个类型来生成一个新实例时就会用到。希望大家会喜欢,谢谢!