第25章客户信息管理系统客户信息管理系统是一种用于储存企业客户信息资源,便于与客户及时沟通交流,从而增强与客户关系、提高企业管理水平的系统。企业可以通过客户信息管理系统管理、分析和统计现有客户资源,以便快速、全面、准确地了解现有企业客户情况,从而制定长期客户沟通和访问计划,制定营销战略,促进企业长期、良性经营发展。该系统基于传统的三层架构,并采用前面介绍的VisualC#.NetWindowsForm和ADO.NET技术来实现。章节内容25.1需求分析25.2分层设计25.3功能实现25.4小结25.1需求分析1.用户角色分析角色名称权限普通管理员(1)对客户信息的添加、修改、删除和查询;(2)对自身密码的修改超级管理员(1)对客户信息的添加、修改、删除和查询;(2)对自身密码的修改;(3)对用户信息的添加、修改、删除、查询和权限分配25.1需求分析2.功能需求分析客户信息管理系统用户信息管理客户信息管理添加客户信息修改客户信息删除客户信息查找客户信息添加用户信息修改用户信息删除用户信息查找用户信息修改用户密码设置用户权限25.3.1数据库的设计和实现1.客户信息表列名数据类型是否主键允许Null说明ClientIDvarchar(20)是否客户编号CNamevarchar(50)否是客户名称CStepvarchar(20)否是客户级别CRootvarchar(20)否是客户来源CTradevarchar(20)否是所在行业CTypechar(10)否是客户类型CAreavarchar(50)否是所在区域CPhonevarchar(20)否是联系电话CFaxvarchar(20)否是传真号码CPostCodebigint否是邮政编码CAddressvarchar(50)否是联系地址CEmailvarchar(50)否是电子邮件CRemarkvarchar(1000)否是备注25.3.1数据库的设计和实现2.用户信息表列名数据类型是否主键允许Null说明UserIDvarchar(20)是否用户编号UserNamevarchar(20)否是用户名称UserPwdvarchar(20)否是用户密码UserRightchar(10)否是用户权限25.3.1数据库的设计和实现3.区域信息表列名数据类型是否主键是否Null说明AreaIDvarchar(20)是否区域编号AreaNamevarchar(50)否是区域名称AreaTypechar(10)否是区域类型25.3.2用户界面层的实现1.登录界面的实现25.3.2用户界面层的实现1.登录的实现过程用户名列表数据绑定业务逻辑层数据访问层根据所选用户名判别权限数据访问层验证密码正确性数据访问层是否正确不正确密码错误提示正确成功登陆主界面2.主界面的实现25.3.2用户界面层的实现2.主界面的实现通过获取登陆用户的信息绑定状态栏信息退出系统提示是否退出系统系统主界面客户信息管理用户信息管理25.3.2用户界面层的实现3.客户信息管理的实现25.3.2用户界面层的实现25.3.2用户界面层的实现3.客户信息管理的实现添加或者修改客户信息业务逻辑层数据访问层对信息进行绑定和验证提示添加成功并刷新界面正确提示信息格式不正确不正确数据是否正确25.3.2用户界面层的实现3.客户信息管理的实现删除客户信息提示是否删除是否不执行操作返回原状查询客户信息选择客户类别根据类别和关键字查询数据访问层刷新界面并显示执行结果25.3.3数据访问层的实现数据访问层主要用于提炼出系统中对数据库访问和操作的过程,包括对数据库的查询、删除、修改和添加过程。因为此过程用户是无法感知的,同时各个界面的操作都需要重复使用该过程,所以将其提炼为一个数据访问层类,可以使整个系统结构明晰简洁,同时又便于各个界面的数据访问统一,而且还可以优化代码,便于维护。数据访问层的类图如下:25.3.4业务逻辑层的实现业务逻辑层主要用于对数据实现自动绑定和数据验证。该系统中,主要的自动绑定就是下拉列表框的数据绑定,故需在业务逻辑层类中设置一个cboxBind()方法。其他方法主要用于实现对数据的验证,包括电话号码、邮政编码等数据的验证。通过提炼出一个业务逻辑层类来实现这些操作,可以使整个系统层次分明,便于系统的设计、维护和修改。业务逻辑层的类图如下:25.4小结本章介绍了基于3层设计,使用VisualC#.NetWindowsForm和ADO.NET技术构建一个简单的客户信息管理系统。通过使用3层设计结构,可以根据功能实现模块分离,使整个系统的设计层次分明,有利于系统日后的修改和维护。