C#毕业设计——基于C#+asp.net+sqlserver的客户关系管理系统设计与实现(毕业论文+程序源码)——客户关系管理系统

基于C#+asp.net+sqlserver的客户关系管理系统设计与实现(毕业论文+程序源码)

大家好,今天给大家介绍基于C#+asp.net+sqlserver的客户关系管理系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦。需要下载开题报告PPT模板及论文答辩PPT模板等的小伙伴,可以进入我的博客主页查看左侧最下面栏目中的自助下载方法哦

文章目录:

1、项目简介

  1. 论文介绍了一个较为完整、有较强实用性的客户关系管理(CRM)系统的开发过程。该CRM系统主要包括客户管理、联系人管理、时间管理、销售管理、电话营销、营销管理等诸多典型功能。在系统的实现上,前台主要应用的是ASP.NET web设计技术、C#程序设计语言以及DreamWeaver网页设计工具;后台则是采用了网络数据库SQL server 。
  2. 论文首先对客户关系管理(CRM)进行了概述性的介绍,包括CRM的基本概念、管理思想和基本构成。接着对CRM的进行了需求分析、系统规划以及数据库设计。在此基础上,论文详细介绍了客户管理子系统和活动管理子系统设计过程中涉及的用户验证、数据列表分页、创建公用数据库连接类、对数据表之间关联等关键技术,并介绍了系统设计过程中对应模块的详细设计过程,给出了设计效果和设计代码。另外,论文还介绍了系统测试的目的、任务和方法,利用一个具体的测试实例检验完成系统对应功能的实现情况。最后概述了系统优缺点、将来可能提出的要求以及设计的体会和感受。

2、资源详情

项目难度:中等难度
适用场景:相关题目的毕业设计
配套论文字数:19751个字46页
包含内容:整套源码+完整毕业论文+答辩PPT


3、关键词:

CRM; ASP.NET; SQL; .Net Framework对象开发库

4、毕设简介

提示:以下为毕业论文的简略介绍,项目源码及完整毕业论文下载地址见文末。

第1章 引 言
1.1 课题研究背景
省略

客户关系管理系统把有关市场和客户的信息进行统一管理、共享,并能进行有效分析的处理的新型应用系统,它为企业内部的销售、营销、客户服务等提供全面的支持。在帮助企业缩减销售成本、增加收入、寻找扩展业务所需的新市场和新渠道,提高客户的价值方面CRM具有很广阔的应用空间。

1.2 课题研究意义
使用CRM概念和技术,企业能快速搜集、追踪和分析每一个客户的信息,进而了解整个市场走势,并确切地知道谁是客户、谁是客户的客户、什么是客户的需要、客户需要什么样的产品和服务、如何才能满足客户的要求,以及满足客户要求的一些重要限制因素。CRM还能观察和分析客户行为对企业收益的影响,使企业与客户的关系及企业盈利都得到最优化。

省略

1.3 课题研究内容
论文首先对客户关系管理(CRM)进行了概述性的介绍,包括CRM的基本概念、管理思想和基本构成。接着对CRM的进行了需求分析、系统规划以及数据库设计。在此基础上,论文详细介绍了客户管理子系统和活动管理子系统设计过程中涉及的用户验证、数据列表分页、创建公用数据库连接类、对数据表之间关联等关键技术,并介绍了系统设计过程中对应模块的详细设计过程,给出了设计效果和设计代码。另外,论文还介绍了系统测试的目的、任务和方法,利用一个具体的测试实例检验完成系统对应功能的实现情况。最后概述了系统优缺点、将来可能提出的要求以及设计的体会和感受。

全文内容安排如下:
第一章引言,介绍了系统开发的背景和意义,并简要介绍了论文内容的安排。
第二章客户关系管理(CRM)概述,主要介绍了CRM的基本概念、管理思想和基本构成。
第三章客户关系管理的分析与设计,主要介绍了对CRM的需求分析、系统规划和数据库设计。
第四章客户管理系模块的详细设计,介绍了客户关系管理模块涉及的用户验证、数据列表分页和创建公用数据库连接类这三类关键技术,及其对应的数据库的建立和功能代码的编写,实现界面的预览。
第五章活动管理模块,主要介绍了对数据表之间关联的实现技术,对应的数据库的建立和功能代码的编写,实现界面的预览。
第六章软件测试,介绍了测试目的、任务和方法。并利用一个具体的测试实例检验完成系统对应功能的实现情况。
第七章结论与体会,概述了系统优缺点、将来可能提出的要求以及设计的体会和感受。

第2章 客户关系管理(CRM)概述
2.1 CRM基本概念
CRM是英文Custormer Relationship Management的缩写,即客户关系管理。它是一个获取、保持、和增加可获利客户的过程。首先,它是一套先进的管理思想及技术手段,它通过将人力资源、业务流程与专业技术进行有效的整合,最终为企业涉及到客户或消费者的各个领域提供了完美的集成,使得企业可以更低成本、更高效率地满足客户的需要,并与客户建立起基于学习型关系基础上的一对一营销模式,从而让企业可以最大程度地提高客户满意度及忠诚度,发掘并牢牢地把握能给企业带来最大价值的客户群。

CRM的核心内容主要是通过不断的改善与管理企业销售、营销、客户服务和支持等与客户关系有关的业务流程并提高各个环节的自动化程度,从而缩短销售周期、降低销售成本、扩大销售量、增加收入与盈利、抢占更多市场份额、寻求新的市场机会、销售渠道,最终从根本上提升企业的核心竞争力,使得企业在当前激烈的竞争环境中立于不败之地。CRM将先进的思想与最佳的实践具体化,通过使用当前多种先进的技术手段,最终帮助企业实现以上目标。

从物理结构上说,CRM是一套智能化的信息处理系统,从功能上说,它将企业的经营、管理导向“以客户为中心”的一套管理和决策方法。它是一个软件模块。一个完整的CRM概念不仅包含了一个现代的网络呼叫中心的全部功能,而且还包括了呼叫中心收集起来的信息和数据进行存储、加工、分析和整理。对大量的数据进行研究,发现他们的自然规律,并运用人工智能的各种优化算法建立数学模型,经过计算获得若干对企业决策和支持有用的结果。

2.2 CRM管理思想
在竞争日益激烈的今天,越来越多的企业开始关注客户,重视收集客户的信息,倾听并及时响应客户的要求和期望。企业通过对客户理解的不断加深以及对客户服务实践的不断改善,提高其竞争力。CRM的目标在于协助企业不断地获取和积累客户知识,并将这些知识运用在企业的生产、市场营销和客户服务等各个领域,以提升客户满意度和忠诚度,降低生产、销售和服务成本,从而增加企业效益。CRM的核心管理思想主要包括以下几个方面:
1)客户是企业发展最重要的资源之一
在人类社会从产品导向时代转变为客户导向时代的今天,客户的选择决定着一个企业的命运,因此,客户己成为当今企业最重要的资源之一。CRM系统中对客户信息的整合集中管理体现出将客户作为企业资源之一的管理思想。在很多行业中,完整的客户档案或数据库就是一个企业颇具价值的资产。通过对客户资料的深入分析并应用销售理论中的2/8法则将会显著改善企业营销业绩。

2)对企业与客户发生的各种关系进行全面管理
企业与客户之间发生的关系,不仅包括单纯的销售过程所发生的业务关系,如合同签订、定单处理、发货、收款等,而且还包括在企业营销及售后服务过程中所发生的各种关系。如在企业市场活动、市场推广过程中与潜在客户发生的关系。在与目标客户接触过程中,内部销售人员的行为、各项活动及其与客户接触全过程所发生的多对多的关系。还包括售后服务过程中,企业服务人员对客户提供关怀活动、各种服务活动、服务内容、服务效果的记录等,这也是企业与客户的售后服务关系。

对企业与客户间可能发生的各种关系进行全面管理,将会显著提升企业营销能力、降低营销成本、控制营销过程中可能导致客户抱怨的各种行为,这是CRM系统的另一个重要管理思想。

3)进一步延伸企业供应链管理
CRM系统借助Internet Web技术,突破了供应链上企业间的地域边界和不同企业之间信息、交流的组织边界,建立起企业自己的B2B网络营销模式。CRM真正解决了企业供应链中的下游链管理,将客户、经销商、企业销售全部整合到一起,实现企业对客户个性化需求的快速响应。同时帮助企业清除营销体系中的中间环节,通过新的扁平化营销体系,缩短响应时间,降低销售成本。

2.3 CRM系统的基本构成
一个CRM系统是具有对客户各方面信息进行详细管理、分类、统计等功能的复杂系统,一般有多个子系统组成。一般CRM软件的基本功能包括客户管理、联系人管理、时间管理、潜在客户管理、销售管理、营销管理、电话营销、客户服务等,有的软件还包括了呼叫中心、合作伙伴关系管理、商业智能、知识管理、电子商务等。

2.3.1 客户管理
客户是企业最重要的资源之一,客户管理是对企业的客户资源进行管理。主要功能包括基本信息管理、活动管理、订单管理、合同管理等。

2.3.2 联系人管理
企业与客户直接接触时的对象是联系人,企业与客户之间往往具有固定的一个或多个联系人。联系人管理的主要作用包括联系人概况的存储和检索、跟踪与客户联系的详细记录、客户内部机构的设置概况等。

2.3.3 时间管理
时间管理主要的功能有日历功能:设计约会、活动计划、有冲突时,系统会提示;进行事件安排,如约会、电话、电子邮件、传真;备忘录进行团队等事件安排;查看团队中其他人的安排,以免发生冲突;把事件的安排通知相关的人;任务表安排;预告与提示;记事本等。

2.3.4 潜在客户管理
潜在客户管理主要的功能包括业务线索的记录、升级和分配,销售机会的升级和分配,潜在客户的跟踪等。

2.3.5 销售管理
销售管理的主要功能包括组织和浏览销售信息;产生各销售业务的阶段报告,并给出业务所处阶段、还需的时间、成功的可能性、历史销售状况评价等信息;对销售业务给出战术、策略上的支持;对地域进行维护;把销售员归入某一地域并授权;地域的重新设置;根据利润、领域、优先级、时间、状态等标准,用户可定制关于将要进行的活动、业务、客户、联系人、约会等方面的报告;提供类似BBS的功能,用户可把销售秘诀贴在系统上,还可以进行某一方面销售技能的查询;销售费用管理与销售佣金管理等。

2.3.6 营销管理
营销管理主要功能包括产品和价格配置器;在进行营销活动时,能获得预先定制的信息支持;把营销活动与业务、客户、联系人建立关联;显示任务完成进度;提供类似公告板的功能,可张贴、查找、更新营销信息,从而实现营销文件、分析报告等的共享;跟踪特定事件;安排新事件。

2.3.7 客户服务管理
客户服务管理主要的功能包括服务项目的快速录入;服务项目的安排、调度和重新分配;事件的升级;搜索和跟踪与某一业务相关的事件;生成事件报告;服务协议和合同;订单管理和跟踪;问题及其解决方法的数据库。

第3章 客户关系管理系统的分析与设计
3.1 CRM系统分析
现行的CRM软件还处于起步阶段,功能模块结构不尽相同,但是其基本的需求是一样的,其主要技术需求应包括六个方面:
1、信息分析能力
CRM有大量客户和潜在客户的信息,企业应该充分的利用这些信息进行分析,使得决策者掌握的信息更加完全,从而能及时的作出决策。良好的商业情报是企业成功的一半。

2、对客户互动渠道进行集成的能力
对多渠道进行集成与CRM解决方案的功能部件的集成是同等重要的。不管客户是与企业联系还是与销售人员联系,于客户互动都应该是无缝的、统一的、高效的。同一的渠道还能带来内部效益的提高。

3、支持网络应用的能力
在支持企业内外的互动和业务处理方面,Web的作用越来越大,这使得CRM得网络功能越来越重要。如网络可以为电子商务渠道提供支持。为了使客户和企业雇员都能方便应用CRM,需要提供标准化的网络浏览器,使得用户几乎不需训练就能使用系统。另外,如果通过网络为客户提供在线反馈的话并能有专人及时传达信息给公司的售后服务部门,这将为公司留住客户(尤其是距离较远的)并使业绩添砖加瓦。

4、建设集中的信息仓库的能力
采用集中化的信息、实时的客户信息,可使各业务部门和功能模块间的信息能统一起来。

5、对工作流进行集成的能力
工作量是指把相关文档和工作规则自动化安排给负责特定业务流程中特定步骤的人。CRM解决方案应具有较强的功能,为跨部门工作提供支持,使这些工作能动态的、无缝的集成。

6、与ERP功能的集成
如果CRM与ERP和财务、库存、制造、分销、物流和人力资源等连接起来,使之成为一个客户互动循环,这种集成能使企业在系统间搜集商业情报,而不是低水平的数据同步。
根据分析,一个成功的CRM产品一般都能实现以下功能:
(1)客户信息进行全方位跟踪。
(2)帮助企业高层进行决策。
(3)帮助企业提高营业额,产生新的商机

因而可得企业CRM系统的应包括以下基本功能:
销售管理:销售支持系统给销售人员提供了功能强大的支持工具和多种形式的信息,从而使销售人员可以对客户、业务等进行有效的管理。对于企业来说,销售管理系统将大大扩展客户范围,提高工作效率,降低销售成本,为企业的利润增长提供有力的支撑。

营销管理:使营销人员能高效、全面地分析客户及市场信息,量身定做合适的市场活动计划。系统可以对销售、服务等进行指标化的分析,帮助营销人员根据实际情况制定、实施和调整营销战略计划,并发送给销售人员和合作伙伴,从而实现对产品、服务、物流等渠道进行管理调控。

客户服务:客户服务系统可以帮助企业以更快的速度和更高的效率来满足客户的独特需求。可以向服务人员提供完备的工具和信息,并支持多种与客户的交流方式。帮助客户服务人员更有效率、更快捷、更准确地解决用户的服务咨询,同时能根据用户的背景资料和可能的需求向用户提供合适的产品和服务建议。

电话中心CallCenter:将销售与客户服务系统整合成为一个系统。使得服务人员可以根据客户提出的需求提供售后服务支持,也可以提供销售服务。大大方便了客户与公司的交流,使顾客增加了对公司服务的依赖。

3.2 CRM系统规划
本CRM系统是具有对客户各方面信息进行详细管理、分类、统计等功能的复杂系统,一般由多个子系统组成。主要功能包括,客户管理系统模块、活动管理系统模块、销售管理系统模块、服务管理系统模块、费用管理系统模块、库存管理系统模块、报表管理系统模块、E-mail管理系统模块以及后台管理系统模块。本系统为了体现模块的独立性,各个模块之间的关联除了后台数据库之外,模块之间的关联是很少的。本人负责如下两个模块。

3.2.1 客户管理系统模块
客户管理系统模块是整个CRM系统的重点与主干,该系统主要对客户的信息进行管理,并将客户信息作为连接其余各个系统模块的主线,整体关系表现如下:
在这里插入图片描述

客户管理主要就是将企业掌握的信息进行详细管理,并可以方便地对这些信息进行修改。在CRM系统中,客户管理系统可以通过客户或相关联系人的关键字段进行查询,快速找到所需要的客户或相关联系人信息。具体系统实现功能如下:

  1. 客户详细信息管理
    客户详细信息管理主要功能是浏览、查询、添加、删除、修改各个客户的详细信息。
    2 .客户信息列表
    用于将客户信息进行简单的列表显示,使用户可以方便地管理客户信息库,并具有模糊查询、删除等功能。
  2. 联系人详细信息管理
    联系人指的是某客户的具体联系人员,对联系人也需要建立类似客户的管理西。联系人详细信息管理模块与客户详细信息管理类似,主要功能是浏览、查询、添加、修改各个联系人的详细信息。
  3. 联系人信息列表
    与客户信息列表类似,联系人信息列表是将联系人信息进行简单的列表显示,以使得用户可以方便地管理联系人信息库。
    客户管理子系统的模块结构图如下:
    在这里插入图片描述

添加新客户信息时,首先从客户信息表单中获得客户的详细信息,在对所有的字段进行格式校验合格后,将数据添加到数据库的客户表中。同样的,当添加新联系人信息的时候,首先从联系人信息表单中获得联系人的详细信息,在对所有的字段进行格式校验合格后,将数据添加到数据库的联系人表中。在添加联系人信息时,需要为联系人选择一个相关的客户信息,才能把数据添加到联系人表中。

各模块之间的关系如下图所示。
在这里插入图片描述

3.2.2 活动管理系统模块
活动管理系统模块主要记录与客户之间的联系计划信息,以便及时和客户取得联系,随时了解客户的情况,保证稳定的客户来源。它是由活动详细信息管理和活动列表构成。
在这里插入图片描述

活动管理系统主要就是将企业与客户及其相关联系人之间发生的各种活动进行详细管理,并可以方便地对活动信息进行添加、修改等编辑操作。在CRM中,活动管理系统可以通过活动的关键字段进行查询,快速找到所需要的活动信息,提供方便全面的活动记录参考。具体的活动管理系统实现的功能如下:
1、活动管理模块
添加活动:添加新的活动信息到活动表,其中包括活动主题、活动类型、相关客户、活动时间、活动具体安排等信息。

浏览活动:能够对所有活动信息进行逐一浏览,并可以浏览其他用户公开的活动记录信息。
编辑信息:能够修改和删除活动信息,用户可以在浏览活动信息时随时更新活动信息,并可删除作废的活动信息。

2、活动列表模块
活动列表显示:对所选择客户的活动进行列表显示,使得用户更容易从全局去把握活动计划,并能够快速找到需要的活动记录。

活动信息模糊查询:通过限定的关键字段查询活动信息,将符合条件的活动信息进行列表显示。
批量删除活动信息:能够批量删除先中的多个活动信息,用户可以在对活动信息进行查询后批量删除符合条件的活动信息。

当添加新活动信息的时候,首先从活动信息表单中获得活动的详细信息,在对所有的字段进行格式校验合格后便将数据添加到数据库的活动表中。在添加活动信息时,必须为活动分别选择一个相关的客户信息和联系人信息,才能把数据添加到活动表中。
具体个模块之间的关系如下图所示。
在这里插入图片描述

3.3 系统数据库设计
首先,打开Microsoft SQL Server的查询分析器,创建一个空数据库CRM。(Create database CRM),再建立所需要的表。本文中的涉及到了11张表。分别为:客户信息表(Client)、联系人信息表(Touchman)、活动信息表(Activity)、产品信息表(Product)、库存信息表(Stock)、临时库存信息表(Stock_Temp)、销售信息表(Sell)、服务信息表(Feedback)、费用信息表(Fee)、用户信息表(User)和部门信息表(Section)。因本人分到的模块是客户管理系统模块和活动管理系统模块,所以这里仅详细介绍了本人所要应用表的具体结构。
(1) 部门信息表(Section)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

第4章 客户管理子系统实现
客户管理系统是CRM系统中最重要的组成部分之一。它统一管理与企业所掌握的客户及其相关联系人信息,而这是其余模块系统的基础。客户及其联系人是企业最重要的资源之一,通过客户管理系统能有效地管理客户及其相关联系人。

4.1 关键技术介绍
在用户管理系统中主要通过对数据库的操作来管理客户信息,其中涉及到身份验证、数据查询和页面分页等处理。

4.1.1 创建用户验证页面
由于系统必须登陆后才能够使用,所以必须对用户身份进行验证.在本系统中,选用了第一个index.aspx页面.其内部的具体判别代码如下:
.cs文件代码

private void CustomValidator1_ServerValidate(object source, System.Web.UI.WebControls.ServerValidateEventArgs args)
{
Session["flag"]="ok";
string UserName=args.Value;
Session["Username"]=args.Value;
SqlConnection con=conn.createconn();
con.Open();
SqlCommand cmd=new SqlCommand("select count(*) from [User] where UserName='"+UserName+"'",con);
int count=Convert.ToInt32(cmd.ExecuteScalar());
if (count>0)
{
args.IsValid=true;
SqlConnection con1=conn.createconn();
con1.Open();
SqlCommand cmd1=new SqlCommand("select  UserID  from [User] where UserName='"+UserName+"' ",con1);
Session["UserID"]=cmd1.ExecuteScalar().ToString();
string UserID=Session["UserID"].ToString();
SqlCommand cmd2=new SqlCommand("select  IsAdmin from [User] where UserID='"+UserID+"' ",con1);
Session["IsAdmin"]=cmd1.ExecuteScalar().ToString();
}
else
{
args.IsValid=false;
}//是关于用户名不为空
private void CustomValidator2_ServerValidate(object source, System.Web.UI.WebControls.ServerValidateEventArgs args)
{
string UserPass=args.Value;
SqlConnection con=conn.createconn();
con.Open();
SqlCommand cmd=new SqlCommand("select count(*) from [User] where  UserPass='"+UserPass+"'",con);
int count=Convert.ToInt32(cmd.ExecuteScalar());
if (count>0)
{
args.IsValid=true;
SqlConnection con1=conn.createconn();
con1.Open();
SqlCommand cmd1=new SqlCommand("select  UserID from [User] where  UserPass='"+UserPass+"'",con1);
Session["UserID"]=cmd1.ExecuteScalar().ToString();
Response.Redirect("CHKLogin.aspx");
}
else
{
args.IsValid=false;
}
}//关于密码不能为空
这些代码除了判定这两个文本输入框不为空外,还外加判定是否是被允许的访问者(用户).
其对应的HTML文件代码如下:
<asp:customvalidator id="CustomValidator1" runat="server" Display="Dynamic" ControlToValidate="username" ErrorMessage=" 用户名不正确!">*</asp:customvalidator>
<asp:RequiredFieldValidator id="RequiredFieldValidator1" runat="server" Display="Dynamic" ControlToValidate="username"ErrorMessage="用户名不能空!">*</asp:RequiredFieldValidator>
类似	<asp:customvalidator id="CustomValidator2" runat="server" ControlToValidate="userpwd" ErrorMessage="密码不正确!"Width="8px">*</asp:customvalidator>
<asp:RequiredFieldValidator id="RequiredFieldValidator2" runat="server" Display="Dynamic" ControlToValidate="userpwd"ErrorMessage="密码不能为空!" Width="8px">*</asp:RequiredFieldValidator>

4.1.2 数据列表分页的方法
在操作客户或联系人信息列表的时候,如果数据过多,在同一页面上显示出来会使网页变得很大,影响页面的美观,也降低了网页执行的效率。因此,有必要进行分页操作。
在HTML的中编写

<PagerStyle HorizontalAlign=CenterForeColor=BlackBackColor=”#999999Mode=NumericPages></PagerStyle>

而在所对应的.cs文件中编写如下程序代码:

private void DataGrid1_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
this.DataGrid1.CurrentPageIndex=e.NewPageIndex;
this.databindertodatagrid1();
}

来实现分页。

4.2 客户管理模块
客户管理系统主要通过客户表(Client)、联系人表(Touchman)来实现客户及其相关联系人的管理,其主页面为以文本框、下拉列表框和按狃为主组成的表单,并包含显示操作记录的文本框。

4.2.1 浏览客户信息
用户可以通过客户管理系统浏览所拥有的客户信息,并根据实际情况进行相应的修改,具体的用户浏览界面如下图所示。

在这里插入图片描述

图4.1 浏览客户信息页面

浏览客户信息是客户管理模块最基本的功能之一,用户能够通过该模块浏览数据库中的客户信息,并进行相应的修改、删除等操作。显示客户信息的页面名称为:client.aspx,其运行的界面如上图4.1所示。需要显示的数据包括客户名称、客户地址、电话、E-mail、银行帐号等与客户相关的信息。

在实现从数据库客户表中读出数据的时候,需要数据库文件的支持,这个文件就是前面所提到的conn类。

其实际的调用格式也如上

SqlConnection con=conn.createconn();
con.Open();

该表单除了显示客户详细信息的作用,还连接了多个表单(功能的快速连接按钮)。
表单的属性代码如下:

<form id="Form1" method="post" runat="server">//所有的web控件都需放在表单中
这里的from 名为“id=Form1””为表单名称,它是在服务器段执行的。
当显示客户详细信息时,是通过表单的初始值来实现。可以通过内嵌ASP c#代码来对表单进行赋初值的操作,具体代码如下:
<asp:datagrid id="DataGrid1" runat="server" AutoGenerateColumns="False" PageSize="1" AllowPaging="True"ShowHeader="False" ShowFooter="True"><Columns>//引用了数据窗口
<asp:TemplateColumn>
<ItemTemplate>
<TABLE id="Table4" style="WIDTH: 771px; HEIGHT: 314px" cellSpacing="1" cellPadding="3"width="771" align="center" bgColor="#33ccff" border="0">
<TR>
<TD style="WIDTH: 104px; HEIGHT: 16px" vAlign="middle" align="left" width="104" bgColor="#ffffff">
<FONT face="Wingdings" color="#99ccff">v</FONT><FONT color="#ff6600">客户名称:</FONT>
</TD>
<asp:textbox id="FeedbackTopic" runat="server" Width="160px" Text='<%# DataBinder.Eval(Container.DataItem,"ClientName") %>'>
</asp:textbox>
</TD>
省略部分的代码也如上所视调用了数据库中的数据<%# DataBinder.Eval(Container.DataItem,ClientName)%>
<FooterTemplate>
<FONT face="宋体"><FONT color="#ff6600"></FONT></FONT></FooterTemplate>
</asp:TemplateColumn></Columns>
<PagerStyle VerticalAlign="Middle" NextPageText="下一页" PrevPageText="上一页" HorizontalAlign="Left">
</PagerStyle>
</asp:datagrid>
</TD>
</TR>
</TBODY></TABLE>
<TABLE id="Table6" style="WIDTH: 777px; HEIGHT: 53px" cellSpacing="1" cellPadding="3" width="777"align="center" bgColor="#33ccff" border="0">
<TR>
<TD style="HEIGHT: 23px" vAlign="middle" bgColor="#ffffff" colSpan="4" height="23">
<FONT face="Wingdings" color="#99ccff">v</FONT></FONT>
<FONT color="#ff6600">操作者://这里它的值是系统根据登录的用户的用户名来赋值
<asp:textbox id="txtcreatname1" runat="server">
</asp:textbox><FONT face="Wingdings" color="#99ccff">v</FONT><FONT color="#ff6600">所属部门:
//根据系统中获得的登录用户名来查找出他所在的部门
<FONT face="Wingdings" color="#99ccff">v</FONT></FONT>
<FONT color="#ff6600">最后修改日期://也由系统自动提供

可见,在HTML代码中表单元素的相关部分通过类似“Text='<%# DataBinder.Eval (Container.DataItem,“ClientNation”)’ ”的内嵌标签可以实现对表单的赋初值(从数据库中提取出来的数据)。

这里的处理思路是根据用户表单提交过来的默认ID数据,读取数据库里的第一个客户信息,将其赋予表单初值。

只有当记录不为空时,才能够根据记录去进行下一步的操作,否则程序就会出错,这是在设计程序中必须考虑到的。当游标指向最后的一个记录时,下一步就不会执行。

4.2.2 添加客户信息
当系统用户得到新的客户信息时,可以通过填写客户信息表单将客户信息添加到客户表中,即在图4.1所示页面中单击“新建”按钮,执行添加客户信息的操作。具体的客户添加页面如下图所示。
在这里插入图片描述

图4.2 添加客户信息页面

具体实现方式是通过在按钮中添加相应的事件,当单击“新建”按钮时,触发事件,控制页面跳至新建客户信息页面NewClient.aspx。
新建客户信息页面NewClient.aspx的作用是仅仅是提示用户添加一个客户记录,如下图所示,在提示用户2s后,页面自动跳转到添加客户信息页面AddNewClient.aspx,填写添加壳护信息表单,具体代码如下:

<table border="0" cellspacing="0" cellpadding="0" height="85" bgcolor="#99ccff" width="100%">
<tr><td align="center">
<a class="linkblue2">创建新用户记录</a>
<SCRIPT>setTimeout("location.replace('addnewclient.aspx')",2000)
//这就表示在2s后,自动跳至添加新客户页面
</SCRIPT></td></tr></table>

添加客户信息页面也有类似4.1的一个表单,区别是它展现的不是一个数据窗口,少了“快速查询”与“浏览”按钮,只有“保存”和“返回”按钮。
该页面的表单主要用于输入新添加客户的详细信息,具体表单设置如下表所示。

表4-1 添加客户信息页面使用的表单元素
在这里插入图片描述

4.2.3 客户信息列表显示
添加客户信息后,用户可以在客户列表中查看客户的信息。在快速查询下拉框中选中所要使用的查询关键字(如按客户名称查询),在另一个文本框中输入所要查询的值,单击查询按钮即可。页面的具体效果图如下所示。
在这里插入图片描述

图4.3 客户信息列表

客户列表页面为list.aspx(图4.3),客户列表可以将多项客户信息通过列表方式详细展示给用户,并可以快速连接到浏览客户信息页面查看详细客户信息。而且系统提供了模糊查询的功能.只要在快速查询对应的下拉框中挑选要素(进行查询的条件),在选择是包含或不包含功能,再输入关键字,按”查询”按钮,则可见列表中列出自己所需要的记录.本系统在列表中只提供显示一些基本的内容,若客户要看详细功能,就只能到客户浏览信息模块.在该列表中,还提供了删除的功能,只要选定要删除的记录前的checkbox,再单击”删除”按钮,即可实现.

在该项中,需注意的是,本系统有两个信息列表,分别为公开和不公开的,如何实现两个功能的区分,本系统使用了在各页之间传递变量来分辨。这里应用的是ClientOpenFlag值。

4.2.4 修改客户信息
在浏览客户信息时,有可能修改其中的信息,所以要有客户信息修改的页面。当用户需要使用修改功能时,单击右下角的“修改”按钮,将跳至客户信息修改页面(如上图4.7),只有当用户填完所需要修改的数据后,单击“编辑”按钮,即可保存修改的数据。

private void Button1_ServerClick(object sender, System.EventArgs e)
{
foreach(System.Web.UI.WebControls.DataGridItem dl in this.DataGrid1.Items)
{
string UserID="1";
string ClientRevisorID=UserID;	
string ClientReviseDate=this.Textbox1.Text;..省略代码………string ClientTaxPhoneNum=((TextBox)(dl.FindControl("Textbox22"))).Text;//获取数据窗口中的数据
SqlConnection con=conn.createconn();	
con.Open();//数据库打开,命令对象的使用所必须的条件
SqlCommand cmd=new SqlCommand("update Client set ClientName='"+ClientName+"',ClientHomepage='"+ClientHomepage+"',//很多项省略,其书写格式如者些所示,只要对应的项赋对应的值即可ClientRevisorID='"+ClientRevisorID+"',ClientReviseDate='"+ClientReviseDate+"'where ClientID='"+ClientID+"' ", con);//更新数据语句格式
cmd.ExecuteNonQuery();
con.Close();}
}

Updateclient2.aspx其效果图,如下页面所示:

在这里插入图片描述

图4.4 修改客户页面

4.2.5 删除客户信息
当数据库中的客户信息已经不再符合实际,则需要将起删除,以便更有效的对客户信息进行管理。

删除客户信息的功能是通过在客户信息列表页面(图5.1.3)选中要删除的客户所对应的checkbox,再单击“删除”按钮即可。因删除按钮是WEB控件,点击之后,激发事件,对应地删除了数据表中该项的数据,并且系统还随之重定向于删除客户信息处理页面DeleteClient.aspx页面,提示用户该操作已经完成。

其删除所选客户记录的代码如下所视:

private void DeleteClient_ServerClick(object sender, System.EventArgs e)//单击删除按钮引起事件 
{
foreach(System.Web.UI.WebControls.DataGridItem dl in this.DataGrid1.Items)
{
CheckBox chk=(CheckBox)dl.FindControl("CheckBox1");//判断是否选中的删除项
if (chk.Checked)
{
string ClientID=dl.Cells[1].Text;//Cells[1]的值对应的即是隐含的ClientID
SqlConnection con=conn.createconn();
con.Open();
SqlCommand cmd=new SqlCommand("delete from Client where ClientID='"+ClientID+"'",con);
cmd.ExecuteNonQuery();
con.Close();
Response.Redirect("DeleteList.aspx");
}
}
}//重定向至删除可户信息处理页面

4.3 联系人管理模块
4.3.1 浏览联系人信息
浏览联系人信息是联系人管理模块最基本的功能之一,用户能够通过该模块对数据库中的联系人信息进行浏览,并做相应的修改、删除等。显示联系人信息的页面名称为:Touchman.aspx,其运行的客户界面如上图4.4所示。需要显示的数据包括联系人名称、所属客户、联系人地址、电话、E-mail、个人爱好等与联系人相关的信息。

表4-1 添加联系人信息页面使用的表单元素
在这里插入图片描述

实现该系统功能的代码,雷同上述浏览客户信息,只需修改如下命令:
Sda.SelectCommand=new SqlCommand(“select * from Client, [User], Section, Touchman where ClientID=TouchmanClientID and UserSecton=SectionID and UserID=TouchmanCreatorID ”, con);
这里联系人信息涉及了多个表,所以需要把多个表关联起来.
在具体操作中,每个联系人都有一个所属的客户,通过SQL数据库查询的技巧,可以很好地将这些数据关联起来,并进行添加、修改和删除等操作,从而实现客户管理系统。

4.3.2 添加联系人信息
当系统用户得到新的相关联系人信息时,可以通过填写联系人信息表单将联系人信息添加到联系人表中,具体的联系人添加页面如下图所示。
在这里插入图片描述

图4.5 添加联系人页面

该模块功能的实现雷同于上述添加客户信息模块,区别就是属性不同。其具体实现代码如下:

private void SaveButton_ServerClick(object sender, System.EventArgs e)
{CheckBox chk=(CheckBox)this.FindControl("CheckBox1");//判定是否为主要联系人
CheckBox chk1=(CheckBox)this.FindControl("CheckBox2");//判定是否公开
int TouchManMain,TouchmanOpenFlag;
if(chk.Checked)
TouchManMain=1;
else 
TouchManMain=0;
if(chk1.Checked)
TouchmanOpenFlag=1;
else 
TouchmanOpenFlag=0;
string TouchmanName=TextBox2.Text;//省略了大部分赋值语句
SqlConnection con=conn.createconn();
con.Open();
string TouchmanCreateDate=DateTime.Now.ToShortDateString();
string TouchmanReviseDate=DateTime.Now.ToShortDateString();
string selectclient=this.DropDownList1.SelectedValue;
SqlCommand cmd3=new SqlCommand("select ClientID from Client where ClientName='"+selectclient+"'",con);
int TouchmanClientID=Convert.ToInt32(cmd3.ExecuteScalar());
con.Close();//这段语句实现了用客户名查找联系表中相关客户ID
SqlConnection con1=conn.createconn();
SqlCommand cmd=new SqlCommand("insert Into Touchman (TouchmanName,省略了Touchman的属性 TouchManMain) values(@TouchmanName,省略部分结构类似 @TouchManMain)",con1);
SqlParameter para1=new SqlParameter("@TouchmanName",SqlDbType.NVarChar,200);
para1.Value=TouchmanName;
cmd.Parameters.Add(para1);//省略了大部分类似语句
con1.Open();
cmd.ExecuteNonQuery();}

4.3.3 修改联系人信息
在浏览联系人信息时,有可能要修改其中的信息,其操作步骤就如上修改客户信息.在单击修改按钮后,其跳出页面也如客户一般.而且其修改信息所进行的操作,也如客户一般.

4.3.4 联系人信息列表
其代码结构如同客户信息列表,只需在连接数据库时修改如上代码命令,还有在网页上显示时,其HTML代码中表单元素的相关部分通过类似“Text='<%# DataBinder.Eval(Container.DataItem,“TouchmanName”)’ ”的内嵌标签可以实现对表单的赋初值(从数据库中提取出来的数据),取的是联系人表中的属性值。

添加联系人信息后,用户可以在联系人列表中查看全部联系人的信息。在快速查询中选择相应的关键字并填写关键字,可以快速查询联系人信息。具体效果图如下图所示。
在这里插入图片描述

图4.6 联系人信息列表

第5章 活动管理子系统实现
活动管理系统是对用户与客户之间发生的或即将发生的活动进行规划、记录、分析和预备的系统。在一个多客户企业中,和客户之间往往会有各种各样的活动,通过活动管理系统的帮助,合理地安排这些活动,并从每次活动的记录或者别人公开的活动记录中借鉴到宝贵的活动组织经验,使得用户能够成功地处理与客户之间的关系。

5.1 关键技术介绍
在活动管理系统中主要通过对数据库的操作管理活动信息,其中涉及到数据的检验、添加等数据库处理。

在添加新的活动信息时,必须为活动分别选择一个相关的客户信息和联系人信息,才能把数据添加到活动表中,所以在添加活动的表单中,必须将选择客户和选择联系人的下拉表联系起来。也相当于实现了活动表于客户表、联系人表之间的关联。

本系统选用了将数据绑定的方式来连接数据库,之后,再把显示在页面上的数据依次赋于相应的变量中,通过命令对象,存入数据库中。

把客户表和联系人表关联实现的思路,可如下图所示:
在这里插入图片描述

5.2 活动管理模块
活动管理系统主要是通过活动表(Activity)来实现对客户活动信息的管理,其主页面为以文本框、下拉表框和按钮组成的表但,并包含显示操作记录的文本框。

5.2.1 浏览活动信息
用户可以通过活动管理系统浏览所通有的客户活动信息,并根据实际情况进行相应的修改,具体的浏览信息页面如下图所示。
在这里插入图片描述

图5.2 浏览活动信息页面

浏览活动信息是活动管理模块最基本的功能之一,用户能够通过该模块浏览数据库中的活动信息,并进行相应的查询和快速查询、新建、修改的链接操作。显示活动信息的页面名称为:Activity.aspx,其运行时的界面如图5.1所示。

5.2.2 添加活动信息
当系统用户与客户有新活动时,可以通过填写活动信息表单将活动信息添加到活动表中,具体的活动信息的添加页面如下图所示。
在这里插入图片描述

图5.3 添加活动信息页面
在上图所示页面填好活动信息表单后,单击“保存”按钮,即可添加一条新的活动信息,系统将提示客户已经保存该活动信息。

对应框中添入所要添入的项,然后单击“保存”按钮,将执行添加活动信息的操作。具体的实现方式是在按钮上加了事件。其具体的实现代码如添加客户信息。

5.2.3 活动列表模块
活动列表的功能是在添加活动信息后,用户可以在活动信息列表中查看相关客户的活动的信息。

通过在快速查询中选择相应的关键字段并填写关键字,可以快速查询活动信息。具体效果如下图所示。

在这里插入图片描述

图5.4 活动信息列表页面

活动列表模块将活动信息数据通过列表的方式展示给用户,具有模糊查询和删除的功能。
活动列表页面为Activitylist.aspx,活动列表可以将一些基本信息显示给用户,而且当记录比较多的时候,将列表分页显示,通过“上一页”和“下一页”来实现分页。
其主要的实现代码,也如客户活动列表。

5.2.4 修改活动信息
当活动信息的一些内容发生变化,如若客户表中,客户的名称被修改了或者活动的主题发生了变化,这些都要求活动管理模块要具备修改的能力.这里,采用了单独页面upadateTouchman.aspx提供编辑功能.当用户选定所要修改的项且修改完成后,只要单击”编辑”按钮,提交就行.因为在”编辑”按钮中,定义了一个事件,由它来进行修改信息写入数据库.其具体实现代码如下:

> private void UpdateButton_ServerClick(object sender, System.EventArgs
> e)//单击按钮所引发的事件{ foreach(System.Web.UI.WebControls.DataGridItem dl in
> this.DataGrid1.Items)//游标 { string UserID="1"; string
> ActivityID=((TextBox)(dl.FindControl("Textbox6"))).Text;//取出数据窗口中的数据,且这个已经被设为隐含,修改该记录时,其编号是不变的
> string ActivityRevisorID=UserID;	//操作者的ID号 string
> ActivityReviseDate=this.Textbox1.Text; string
> ActivityTopic=((TextBox)(dl.FindControl("ActivityTopic"))).Text;//这里的主题可以是被修改过后的
> string ActivitySort=((TextBox)(dl.FindControl("ActivitySort"))).Text;
> string ActivityPriority=((TextBox)(dl.FindControl("Textbox3"))).Text;
> string
> ActivityDetail=((TextBox)(dl.FindControl("ActivityDetail"))).Text;
> SqlConnection con=conn.createconn(); con.Open(); SqlCommand cmd=new
> SqlCommand("update Activity set
> ActivityTopic='"+ActivityTopic+"',ActivitySort='"+ActivitySort+"',ActivityDetail='"+ActivityDetail+"',ActivityRevisorID='"+ActivityRevisorID+"',ActivityReviseDate='"+ActivityReviseDate+"'
> where ActivityID='"+ActivityID+"'", con);//设定了修改的命令对象,并赋值
> cmd.ExecuteNonQuery(); con.Close(); } }

从代码中我们也可以看到,有四类是可以被修改的,分别:活动的主题、活动的类型、活动的优先级和活动的详细内容,而一般我们所要修改的也仅仅如此。
这里没有列出起对应的HTML代码,其实这些内容如客户一般,仅是其所展现的表内容的区别。它需要连接用户(User)表、部门(Section)表、客户(Client)表和活动(Activity)表。

5.2.5 删除活动信息
当数据库中的数据不在符合实际,或者该客户已经不与本企业发生任何联系了,那么该记录都可以被删除。本系统也提供了删除的功能。

删除功能是在活动信息列表页面(Touchmanlist.aspx)中实现的。只要选中所要删除的记录前面的checkbox,再单击删除即可。

其具体的实现代码如下:

private void DeleteClient_ServerClick(object sender, System.EventArgs e)
{
foreach(System.Web.UI.WebControls.DataGridItem dl in this.DataGrid1.Items)
{
	CheckBox chk=(CheckBox)dl.FindControl("CheckBox1");
	if (chk.Checked) //这个就是用来判别是否要删除该对应项的checkbox
	{
	string ActivityID=dl.Cells[1].Text;//取出其记录隐含的ID号,其中cell表示的是数据窗口显示的列(从左到右)的数组,ActivityID是排在第二(html代码中如此)
SqlConnection con=conn.createconn();//连接数据库对象
con.Open();
SqlCommand cmd=new SqlCommand("delete from Activity where ActivityID='"+ActivityID+"'",con);//创建删除命令对象
cmd.ExecuteNonQuery();
con.Close();
Response.Redirect("DeleteActivityList.aspx");//跳至该页面提示用户删除完成信息
}
}
}

第6章 软件测试
测试是软件开发时期的最后一个阶段,也是软件质量保证中至关重要的一个环节。

6.1 测试的目的与任务
省略

6.2 测试的方法
省略

6.3 具体测试
省略

第7章 结论与体会
7.1 系统优缺点
省略

7.2 将来可能提出的要求
省略

7.3 系统设计过程中的体会和感受
省略

参考文献
[1].陈承欢、彭勇 管理信息系统基础与开发技术(第一版) 北京:人民邮电出版社 2005.2
[2].萨师煊 王珊 数据库系统概论(第三版) 北京:高等教育出版社 2000.2
[3].刘兰娟 信息系统分析与设计 北京:电子工业出版社 2002.8
[4].宋文官 电子商务实用教程 北京:高等教育出版社 2002.8
[5].王恩波 网络数据库实用教程-SQL Servr 2000 北京:高等教育出版社 2004.1
[6].张立科 ASP开发CRM系统实例导航 北京:人民邮电出版社 2005.1
[7]. 陈楠基于数据仓库与数据挖掘技术的决策支持系统计算机时代2001年第3期
[8]. 杨晓,任清珍数据仓库数据集市和数据挖掘现代计算机2002年第1期
[9]. 曹术华得客户者得大下中国计算机报,2001年第12期
[10]. Jason Price(美)等著窦芳等译Visual C#. NET从入门到精通电子工业出版社2003.3
[11]. 荐沧,龙晓敏深入体验ASP. NET西安电子科技大学出版社2001. 10
[12]. 康际科技ASP. NET行家设计实务中国铁道出版社2002. 1
[13]. Russ Basiura等著康埔泽,ASP. NET Web服务高级编程清华大学出版社2002.6
[14]. Marco Bellinaso等著康博译 ASP. NET Web站点高级编程——提出问题、设计方案、解决方案清华大学出版社2002年9月
[15]. Joseph Bustos,Karl iWatson著侯或泽. NET Web服务入门经典一C#编程篇

致 谢
通过这次课程设计,我学到了很多东西,在开发过程中,增强了自学的能力


5、资源下载

本项目源码及完整论文如下,有需要的朋友可以点击进行下载。如果链接失效可点击下方卡片扫码自助下载。

序号毕业设计全套资源(点击下载)
本项目源码基于C#+asp.net+sqlserver的客户关系管理系统设计与实现(源码+文档)_C#_BS架构_客户关系管理系统.zip
  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

毕业设计方案专家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值