下面就通过一个完整的示例来演示如何使用XCodeFactory3.0及其生成的数据层代码。这个例子仅仅涉及一个数据库(后续帖子中会有多数据库的示例),为了简单起见,这个数据库中只有两个表:Student和Mentor。至于这两个表之间的关系是每个student都有一个mentor。
1.新建一个VS项目,并做好准备。
(1)启动VS.NET,新建名为XcfTestProject的“windows应用程序”项目。
(2)打开解决方案资源管理器,在XcfTestProject下新建“DataAccess”文件夹,所有的数据层的相关类、文件都将放在该文件夹下。
2.打开XCodeFactory3.0,提取必要资源到XcfTestProject项目中。
(1)主菜单=》帮助=》获取DataAccess压缩包,解压到你的项目的当前目录,并将其"包含在项目中"。
(2)主菜单=》帮助=》获取EnterpriseServerBase.dll文件,并在你的项目中添加对其的引用。
(3)在VS.NET中编译项目,应该能通过。
这时解决方案资源管理器中的目录结构如下:
3.打开SqlServer新建一个名为XcfTestFirstDb的数据库。然后在数据库中新建一个Student表,其结构如下:
4.在XCodeFactory3.0新建项目。
(1)主菜单=》文件=》新建项目
(2)修改左边树的根节点为我们的项目名称XcfTestProject
(3)在树控件上右键菜单=》加载数据库,弹出如下对话框:
(4)填写你的数据库连接信息,从下拉列表中选取刚刚新建的XcfTestFirstDb数据库。点击“加载”按钮,结果如下:
这是演示从数据库=》XCF的操作。
(5)在树控件中的XcfTestFirstDb节点上右键菜单=》“新建数据库表”,则在XcfTestFirstDb节点下增加了一个名为“noname”的节点,修改其名为Mentor,然后在如下图所示的地方添加/编辑每一列:
编辑Mentor表的结构如下:
(6)编辑完后,在树中选中Mentor节点,在如下图的代码生成区选中“当前表”的RadioButton,选中“写入DB”的CheckBox,然后点击“生成”按钮。这样就在你的数据库中插入了Mentor表。你可以到SqlServer中验证。
这是验证从XCF=》数据库的操作。
5.保存XCodeFactory项目
主菜单=》文件=》保存项目,可以将XCodeFactory项目保存为一个xcf文件,这样日后只要打开该文件,就可以对项目进行重新编辑、代码重新生成。
6.生成代码
(1)在代码生成区的命名空间中填入“XcfTestProject.DataAccess”,DAL目录则选择我们在步骤1新建的DataAccess文件夹的路径,选中“所有表”RadioButton,选中“数据层”CheckBox,结果如下图:
(2)点击“生成”按钮。
(3)回到VS.net的解决方案资源管理器,把DataAccess文件夹下的所有东东包含在项目中。
(4)编译你的项目,应该能通过。此时解决方案资源管理器显示的结构如下:
DataAccess下的XcfDataAccess文件夹表明此文件夹及其下所有文件都是有XCodeFactory自动生成的。注意,XcfDataAccess文件夹下有一个XcfTestFirstDb文件夹,它是与我们的XcfTestFirstDb数据库对应的。在后面的多数据库示例中,会新加入一个XcfTestSecondDb数据库,这里也会多一个XcfTestSecondDb文件夹。
在XcfDataAccess文件夹下有一个DataBaseInfoMgr.CS的文件,其内容如下:
using System;
using EnterpriseServerBase.DataAccess ;
namespace XcfTestProject.DataAccess
{
public class DataBaseInfoMgr : IDataBaseInfoMgr
{
#region IDataBaseInfoMgr 成员
//可以从配置文件中读取连接信息
public string GetConnString()
{
return string.Format("Data Source = {0}; user id ={1} ;password = {2}; Initial Catalog ={3}" ,"127.0.0.1" ,"sa" ,"chenqi" ,"XcfTestFirstDb") ;
}
public string GetConnString(string dbName)
{
switch(dbName)
{
case "XcfTestFirstDb" :
{
return string.Format("Data Source = {0}; user id ={1} ;password = {2}; Initial Catalog ={3}" ,"127.0.0.1" ,"sa" ,"chenqi" ,"XcfTestFirstDb") ;
}
default :
{
throw new Exception("the {0} database name is invalid !") ;
}
}
}
public event EventHandler DbConfigChanged;
public bool IsMultiDataBase
{
get
{
return false;
}
}
public DataBaseType GetDbType()
{
return DataBaseType.SqlServer ;
}
public void ActivateDbConnChangeeEvent()
{
if(this.DbConfigChanged != null)
{
this.DbConfigChanged(this ,new EventArgs()) ;
}
}
#endregion
}
}
可以看到DataBaseInfoMgr类的目的就是为了提供数据库连接信息,并对多数据库提供了支持!
7.初始化DataEntrance。
在Form1.cs文件中添加如下using引用
using XcfTestProject.DataAccess ;
在Main方法中加入下面代码:
DataEntrance.InitializeDBAccesserFactory(dbInfoMgr,new XDBAccesserFactory()) ;
其中,XDBAccesserFactory位于EnterpriseServerBase.DataAccess文件夹下。
编译项目,应该能够通过。
8.使用数据层代码。
(1)最好的演示代码也可以自动生成,那就是可以生成简单的UI层。为了便于维护,XCodeFactory将UI类也放在了与每个表对应的文件夹中。在代码生成区,选中“UI层”CheckBox,点击生成按钮。将新生成的文件包含在项目中,编译项目,应该能够通过。
可以看到XcfDataAccess文件夹的结构如下:
可以看到与每个表对应都有两个Form文件,如MentorForm就用于Mentor的信息显示和信息录入,而MentorManageForm用于显示所有Mentor,bing提供添加、删除、修改等按钮进行对应的操作。
(2)小试牛刀
在Form1中添加using:
在Form1上添加一个按钮,事件处理函数如下:
{
StudentManageForm form = new StudentManageForm() ;
form.Show() ;
}
运行程序,Form1界面出现后,点击按钮,弹出如下界面:
现在,你就可以点击各个按钮试试功能了:)
(3)关于如何使用自动生成的数据层代码,可以分析一下上图中的各个按钮的事件处理函数中的代码。
要指出的是,获取数据访问对象可以用:
但是最好用:
MentorManageForm中正式这样做的。这样做可以屏蔽数据库类型,到时切换数据库类型时,代码就不用修改了。