4 客户关系管理系统的实施
4.1数据库的建立
我们使用SQL Server2000 的企业管理器建立我们所需要的数据库。 paper51.com
4.2系统框架的搭建
4.2.1 文件布局
paper51.com
按照三层结构的思想,系统分为数据层(如图4-1)、逻辑层(如图4-2)、表示层(如图4-3)。其中数据层采用网络上的开源项目Websharp的数据层。将系统设置功能、客户部门功能、人事部门功能和业务员功能各建立相应的文件夹。整体文件布局见图4-4。 paper51.com
paper51.com
paper51.com
4-1数据层视图
内容来自www.paper51.com
copyright paper51.com
4-2逻辑层视图 paper51.com
paper51.com
图4-3表示层视图 paper51.com
内容来自论文无忧网 www.paper51.com
图4-4整体文件布局 paper51.com
4.2.2 数据层的主要代码文件
内容来自论文无忧网 www.paper51.com
(1) DataAccess.cs文件 paper51.com
提供了ADO.NET存取操作函数的接口。主要的方法描述见表4-1,属性描述见表4-2
http://www.paper51.com
方法名称 paper51.com
功能描述 内容来自论文无忧网 www.paper51.com
IDbTransaction BeginTransaction(); paper51.com
数据库事务
内容来自论文无忧网 www.paper51.com
void Open(); paper51.com
打开连接 内容来自www.paper51.com
void Close(); http://www.paper51.com
关闭连接
内容来自www.paper51.com
int ExecuteNonQuery(CommandType commandType, string commandText); http://www.paper51.com
执行SQL 语句,并返回受影响的行数 内容来自论文无忧网 www.paper51.com
DataSet ExecuteDataset(CommandType commandType, string commandText); paper51.com
执行SQL语句,并且以DataSet的形式返回结果 http://www.paper51.com
IDataReader ExecuteReader(CommandType commandType, string commandText); http://www.paper51.com
执行SQL语句,并且以DataReader的形式返回结果
paper51.com
object ExecuteScalar(CommandType commandType, string commandText); 内容来自论文无忧网 www.paper51.com
执行查询,并返回查询所返回的结果集中第一行的第一列。忽略额外的列或行。
paper51.com
表4-1 ADO.NET存取操作函数的接口,方法描述 内容来自论文无忧网 www.paper51.com
属性名称
内容来自论文无忧网 www.paper51.com
属性描述
paper51.com
DatabaseType DatabaseType{get;} 内容来自www.paper51.com
数据库类型
内容来自www.paper51.com
IDbConnection DbConnection{get;}
http://www.paper51.com
数据库连接
内容来自论文无忧网 www.paper51.com
bool IsClosed{get;}
http://www.paper51.com
指示数据库连接是否关闭了 内容来自论文无忧网 www.paper51.com
表4-2 ADO.NET存取操作函数的接口,属性描述 http://www.paper51.com
(2) AbstractDataAccess.cs文件 内容来自www.paper51.com
使用了接口类DataAccess.cs对ADO.NET存取操作函数进行封装。具体内容见附录
内容来自www.paper51.com
(3) MSSqlDataAccess.cs文件 内容来自论文无忧网 www.paper51.com
ADO.NET存取操作函数的实现。 paper51.com
4.2.3 逻辑层主要代码文件
paper51.com
(1) DbOperator.cs文件
copyright paper51.com
简化了数据层提供的数据库存取方法,封装了数据库的常用操作。方法名称及描述见表4-3,属性名称及描述见表4-4。
copyright paper51.com
方法名称 内容来自论文无忧网 www.paper51.com
功能描述
copyright paper51.com
public bool IsDbHasValue(string strCmd) 内容来自论文无忧网 www.paper51.com
判断数据表是否有值
内容来自论文无忧网 www.paper51.com
public string ReturnValue(string strCmd)
内容来自www.paper51.com
返回SQL语句执行结果的第一行,第一列
copyright paper51.com
public string ReturnValue(string strCmd, int ColumnI)
内容来自论文无忧网 www.paper51.com
返回SQL语句执行结果的第一行,第I列
copyright paper51.com
public int DbExecuteNonQuery(string strCmd) 内容来自www.paper51.com
执行SQL语句,返回受影响的行数 copyright paper51.com
public IDataReader DbExecuteReader(string strCmd)
paper51.com
执行SQL语句,返回IdataReader对象 http://www.paper51.com
public object DbExecuteScalar(string strCmd)
内容来自论文无忧网 www.paper51.com
执行SQL语句,返回第一行,第一列的值 内容来自论文无忧网 www.paper51.com
public DataTable DbExecuteDataTable(string strCmd) paper51.com
执行SQL语句,返回DataTable结构 http://www.paper51.com
public DataSet DbExecuteDataSet(string strCmd) 内容来自论文无忧网 www.paper51.com
执行SQL语句,返回DataSet数据集 paper51.com
表4-3 DbOperator.cs文件主要方法名称及描述
copyright paper51.com
属性名称 内容来自www.paper51.com
属性描述
copyright paper51.com
private MSSqlDataAccess myDbAccess; 内容来自论文无忧网 www.paper51.com
数据层数据库存取类对象
内容来自论文无忧网 www.paper51.com
public IDbConnection DbOperator_conn; http://www.paper51.com
数据库链接
内容来自www.paper51.com
表4-4 DbOperator.cs文件主要属性名称及描述 copyright paper51.com
(2) CommonFun.cs文件
copyright paper51.com
封装了本系统主要使用的功能方法。方法名称及描述见表4-5,属性名称及描述见表4-4
内容来自论文无忧网 www.paper51.com
方法名称 内容来自www.paper51.com
功能描述 copyright paper51.com
public CommonFun() 内容来自论文无忧网 www.paper51.com
构造函数
paper51.com
public static string GetHrCorpID(string hrID)
http://www.paper51.com
获取职员所在公司编号 copyright paper51.com
public static string GetHrDepID(string hrID)
内容来自www.paper51.com
获取职员所在部门编号 paper51.com
public static string GetHrGrpID(string hrID)
paper51.com
获取职员所在小组编号
内容来自论文无忧网 www.paper51.com
表4-5 CommonFun.cs文件主要方法名称及描述
内容来自www.paper51.com
属性名称 paper51.com
属性描述 内容来自论文无忧网 www.paper51.com
private DbOperator dbOperator;
内容来自论文无忧网 www.paper51.com
数据操作类对象 paper51.com
表4-6 CommonFun.cs文件主要属性名称及描述
copyright paper51.com
(3) DynamicField.cs文件
内容来自论文无忧网 www.paper51.com
封装了处理动态字段所需要的功能方法。主要的方法及描述见表4-7,属性名称及描述见表4-8
内容来自www.paper51.com
方法名称 内容来自www.paper51.com
功能描述
内容来自www.paper51.com
public ArrayList GetCulomnsName(string strSelect)
copyright paper51.com
获取对应SQL命令所得到的表结构
paper51.com
public ArrayList[] GetColumnsNameString2(string strSelect)
paper51.com
获取对应SQL命令所得到表的列名及对应的第一行值 paper51.com
public ArrayList[] GetColumnsNameAndValue(string strSelect,string cnTable)
http://www.paper51.com
获取对应SQL语句的中文名英文名和对应的第一行的值 paper51.com
public ArrayList[] GetExtendField(string strCustomerID,string tableName,string valuetableName)
内容来自www.paper51.com
获取自定义字段和该客户对应这些字段的值
内容来自www.paper51.com
public ArrayList[] Get_AllCtField() copyright paper51.com
获取全部客户信息,包括动态字段 内容来自论文无忧网 www.paper51.com
public ArrayList[] GetExtendField(string tableName) 内容来自论文无忧网 www.paper51.com
获取动态字段,返回动态字段关联的一些信息:对应控件类型,字段值,字段英文名,字段名 paper51.com
public ArrayList[] GetDdlIdAndField(string strSelect)
内容来自论文无忧网 www.paper51.com
获取控件类型为DropDownList的动态字段对应的选项值 内容来自论文无忧网 www.paper51.com
public string GetControlsType(string strFieldName)
内容来自论文无忧网 www.paper51.com
获取动态字段对应的控件类型
内容来自论文无忧网 www.paper51.com
public string GetExtendFieldID(string extendFieldName,string tableName) http://www.paper51.com
获取动态字段的字段ID
内容来自论文无忧网 www.paper51.com
public bool IsDbHasThisExtendField(string fieldName,string tableName,string cnTable)
内容来自www.paper51.com
是否该动态字段名已经存在 http://www.paper51.com
表4-7 DynamicField.cs文件主要方法名称及描述 http://www.paper51.com
属性名称
http://www.paper51.com
属性描述 paper51.com
private DbOperator dbOperator;
内容来自www.paper51.com
数据操作类对象 http://www.paper51.com
表4-8 DynamicField.cs文件主要属性名称及描述 内容来自www.paper51.com
(4) MyCrmConfig.cs文件
paper51.com
封装了系统设置所用到的功能方法。主要的方法及描述见表4-9,属性名称及描述见表4-10。 内容来自论文无忧网 www.paper51.com
方法名称
http://www.paper51.com
功能描述 http://www.paper51.com
public ArrayList[] GetGridViewCFG(string strCmd) 内容来自www.paper51.com
获取客户资料表报的配置信息
paper51.com
public ArrayList[] GetGridViewToolTipCFG(string strCmd)
内容来自论文无忧网 www.paper51.com
获取客户资料报表提示框的配置信息
内容来自论文无忧网 www.paper51.com
public string SetToolTipString(GridViewRowEventArgs e,DataTable dt, GridView gv, ArrayList[] al)
http://www.paper51.com
配置客户资料报表提示框
http://www.paper51.com