新锐房地产销售管理系统(部分流程)技术解析(四) 销售管理_客户查询

1.指定客户查询

     具体视图如下:


从上边界面上可以看到我们这里用到的控件有

控件名称

说明

标注(Label)

控件可以在工具箱直接拖动至窗体,拖至窗体后右击属性可以修改控件的样式和各种属性,还可以编辑事件。

选项卡(TabControl)

下拉框(ComboBox)

文本(TextBox)

按钮(Button)

菜单(ToolStripMenuItem)

工具栏(ToolStrip)

组容器(GroupBox)

表格(DataGridView)

功能实现:

第一步:数据库

1、表与关系



表1: 房间资源表(dbo.SYS_RoomResource)

Primary Key(主键):  RoomResourcesID

非主键ID值均是外键

列名

数据类型

默认值

Nulls?

说明

RoomResourcesID

int - Identity

No

房间资源ID

FloorID

int

Yes

楼栋信息表,楼栋ID

TheCodeModelID

int

Yes

属性明细表,代码模式ID

Number

nchar (10)

Yes

编号

UnitNumberID

int

Yes

单元表,单元ID

FloorStotey

nchar (10)

Yes

楼层

RoomCategoryID

int

Yes

属性明细表,房间类别ID

TowardID

int

Yes

属性明细表,朝向ID

DoorModelID

int

Yes

属性明细表,户型ID

RoomTypeID

int

Yes

属性明细表,房间类型ID

RoomLandScapeID

int

Yes

属性明细表,房间景观ID

RoomSpecialID

int

Yes

属性明细表,房间特殊ID

ConstructionArea

decimal (18, 2)

Yes

建筑面积

PricateArea

decimal (18, 2)

Yes

私有面积

PublicArea

decimal (18, 2)

Yes

公摊面积

Usage

decimal (18, 2)

Yes

使用率

TheUnitPrice

decimal (18, 2)

Yes

标价单价

BidPrice

decimal (18, 2)

Yes

标价总价

NumberOfPrice

nchar (10)

Yes

价格次数

SalesStatusID

int

((102))

Yes

属性明细表,销售状态ID

BriefNote

nchar (30)

Yes

简要备注

SchematicDiagram

image

Yes

示意图

Chart

image

Yes

效果图

表2: 楼栋信息表(dbo.SYS_FloorInformation)

Primary Key(主键):  FloorID

非主键ID值均是外键

(这里因为在这个表里边没有设置有默认值,所以没有默认值的那一列)

列名

数据类型

Nulls?

说明

FloorID

int - Identity

No

楼栋ID

ProjectID

int

Yes

项目信息表,项目ID

FloorStructureID

int

Yes

属性明细表,楼栋结构ID

OpenBatchID

int

Yes

属性明细表,开盘批次ID

LaunchSituationID

int

Yes

属性明细表,推出情况ID

OpeningSituationID

int

Yes

属性明细表,开盘情况ID

FloorLevelID

int

Yes

楼栋级别ID

SortNumber

nchar (10)

Yes

序号

FloorName

nchar (20)

Yes

楼栋名称

PropertyRightFloorName

nchar (20)

Yes

产权楼栋名称

FloorStorey

nchar (10)

Yes

楼栋层数

LaunchDate

datetime

Yes

推出日期

DoMortgageDate

datetime

Yes

具备办按揭日期

CapsDate

datetime

Yes

封顶日期

AccumulationFundDate

datetime

Yes

具备办公积金日期

ExpectedPayDate

datetime

Yes

预计交房日期

PropertyRightDate

datetime

Yes

具备办产权日期

MakingRoomDate

datetime

Yes

交房日期

表3: 项目信息表(dbo.SYS_ProjectInformation)

Primary Key(主键):  ProjectID

非主键ID值均是外键

列名

数据类型

默认值

Nulls?

说明

ProjectID

int - Identity

No

项目ID

SortNumber

int

Yes

排序号

ProjectAreaID

int

Yes

属性明细表,项目区域ID

Project_FatherlID

int

Yes

项目信息表,项目级别ID

ProjectName

nchar (20)

Yes

项目名称

PropertyRightProjectName

nchar (20)

Yes

产权项目名称

ProjectCompanyName

nchar (20)

Yes

项目公司名称

ProjectAddress

nchar (50)

Yes

项目座落地址

CaseWhether

bit

Yes

是否结案

CancelWhether

bit

((0))

Yes

有效否

 

表4:  房源保留表(dbo.PW_RoomSelect_Keep)

Primary Key(主键):  KeepID

非主键ID值均是外键

列名

数据类型

默认值

Nulls?

说明

KeepID

int - Identity

No

保留ID

FloorID

int

Yes

楼栋信息表,楼栋ID

RoomResourcesID

int

Yes

房间资源ID,房间ID

UnitPrice

decimal (18, 2)

Yes

单价

Price

decimal (18, 2)

Yes

售价

KeepPeople

int

Yes

保留人

Note

nchar (300)

Yes

说明

StartDate

datetime

Yes

开始时间

KeepTime

nchar (10)

Yes

保留时长

KeepDate

nchar (10)

Yes

保留天数

OperatingPerson

int

Yes

经办人员

IncalidOr

bit

((0))

Yes

作废否

表5:  客户信息 (dbo.PW_ClientInformation)

Primary Key(主键):  ClientID

非主键ID值均是外键

列名

数据类型

默认值

Nulls?

说明

ClientID

int - Identity

No

客户ID

ProjectID

int

Yes

项目信息表,项目ID

ClientNumber

nchar (10)

Yes

客户编号

ClientName

nchar (10)

Yes

客户名称

EarlyVisitIntention

nchar (10)

Yes

初访意向

Gender

nchar (10)

Yes

性别

MaritalStatus

nchar (10)

Yes

婚否

ClientRegistrationWayID

int

Yes

属性明细表,客户登记方式ID

RelationPhone

nchar (15)

Yes

联系电话

ElectronMail

nchar (30)

Yes

电子邮箱

HomeBuyerConsultantID

int

Yes

员工表,置业顾问ID

DateOfVisit

datetime

Yes

来访日期

CommunicationAddress

nchar (50)

Yes

通讯地址

Postcode

nchar (10)

Yes

邮编

IDentityCard

nchar (30)

Yes

身份证号

BirthDay

date

Yes

出生日期

Age

nchar (20)

Yes

年龄

Professional

nchar (20)

Yes

职业

NowLivingArea

nchar (20)

Yes

现居住区域

LearnTheWayToTheCase

nchar (20)

Yes

获取本案途径

VisitConstitute

nchar (20)

Yes

来客构成

Traffic

nchar (20)

Yes

交通

RealEstateSituation

nchar (20)

Yes

置业状况

ResidentialMortgageLoans

nchar (20)

Yes

住宅按揭贷款

HomesBuyersPurpose

nchar (20)

Yes

置业目的

PlanTorealEstatePrice

nchar (20)

Yes

计划置业价格

DemandArea

nchar (20)

Yes

需求面积

PaymentWay

nchar (20)

Yes

付款方式ID

BuyingConsideration

nchar (20)

Yes

买房考虑因素

IncalidOr

bit

((0))

Yes

作废否

表6:  客户事件记录表 (dbo.PW_ClientEventRecord)

Primary Key(主键):  EventRecordID

非主键ID值均是外键

列名

数据类型

Nulls?

说明

EventRecordID

int - Identity

No

事件记录ID

ClientID

int

Yes

客户信息表,客户ID

RecordDate

datetime

Yes

记录日期

Characteristic

nchar (200)

Yes

特征

explain

nchar (200)

Yes

说明

表7:  客户交往明细表 (dbo.PW_ClientContractDetails)

Primary Key(主键):  ClientContractDetailsID

非主键ID值均是外键

列名

数据类型

Nulls?

说明

ClientContractDetailsID

int - Identity

No

客户交往明细ID

ProjectID

int

Yes

项目信息表,项目ID

ClientID

int

Yes

客户表,客户ID

ContractTime

datetime

Yes

交往时间

DegreeOfInterest

char (10)

Yes

意向程度

InteractionsID

int

Yes

属性明细表,交往方式ID

VisitFormID

int

Yes

属性明细表,来访形态ID

HomeBuyerConsultantID

int

Yes

员工表,置业顾问ID

RecommendedHousingID

int

Yes

房间资源表,推荐房源ID

CommunicationContent

nchar (30)

Yes

交往内容

表8:  预定表 (dbo.PW_ReserveUnit)

Primary Key(主键):  ReserveUnitID

非主键ID值均是外键

列名

数据类型

默认值

Nulls?

说明

ReserveUnitID

int - Identity

No

预订单元ID

ClientID

int

Yes

客户表,客户ID

FloorID

int

Yes

楼栋信息表,楼栋ID

UnitNumberID

int

Yes

单元表,单元ID

RoomNumeral

nchar (10)

Yes

房间排号

PresalseArea

nchar (10)

Yes

预售面积

ReservationPrice

money

Yes

预收单价

BookingReservationPrice

money

Yes

预定总价

AccountsReceivableBookingGoid

money

Yes

应收预约金

BookingDate

datetime

Yes

预定日期

ValidDate

datetime

Yes

有效日期

BriefNote

nchar (20)

Yes

简要备注

AuditDate

date

Yes

审核日期

NewReserveUnitID

int

Yes

预定表,新预定ID

ChangeReason

int

Yes

属性明细表,变更原因ID

IncalidOr

bit

((0))

Yes

作废否

表9: 保留表 (dbo. PW_RoomSelect_Keep)

Primary Key(主键):  KeepID

非主键ID值均是外键

列名

数据类型

默认值

Nulls?

说明

KeepID

int - Identity

No

保留ID

FloorID

int

Yes

楼栋信息表,楼栋ID

RoomResourcesID

int

Yes

房间资源表,房间ID

UnitPrice

decimal (18, 2)

Yes

单价

Price

decimal (18, 2)

Yes

售价

KeepPeople

int

Yes

保留人

Note

nchar (300)

Yes

说明

StartDate

datetime

Yes

开始时间

KeepTime

nchar (10)

Yes

保留时长

KeepDate

nchar (10)

Yes

保留天数

OperatingPerson

int

Yes

经办人员

IncalidOr

bit

((0))

Yes

作废否

表10: 预留表 (dbo. PW_SeserveUnit)

Primary Key(主键):  SeserveUnitID

非主键ID值均是外键

列名

数据类型

默认值

Nulls?

说明

SeserveUnitID

int - Identity

No

预留单元ID

ClientID

int

Yes

客户信息表,客户ID

FloorID

int

Yes

楼栋信息表,楼栋ID

UnitNumberID

int

Yes

房间资源表,房间单元ID

RoomNumeral

nchar (10)

Yes

房间排号

PresalseArea

decimal (18, 2)

Yes

预售面积

SeservationUnitPrice

decimal (18, 2)

Yes

预留单价

BookingSeservationPrice

decimal (18, 2)

Yes

预留总价

AccountsReceivableBookingGoid

money

Yes

应收预约金

SeservatingDate

datetime

Yes

预留日期

ValidDate

datetime

Yes

有效日期

BriefNote

nchar (100)

Yes

简要备注

AuditDate

datetime

Yes

审核日期

NewSeserveUnitID

int

Yes

预留表,新的预留ID

ChangeReason

int

Yes

变更原因

IncalidOr

bit

((0))

Yes

作废否

表11: 认购表 (dbo. PW_SubscribeUnit)

Primary Key(主键):  SubscribeUnitID

非主键ID值均是外键

列名

数据类型

默认值

Nulls?

说明

SubscribeUnitID

int - Identity

No

认购单元ID

SalesChangeID

int

Yes

销售便更表,销售变更ID

SubscriptioNumber

nchar (20)

Yes

认购单编号

SubscribeToDate

datetime

Yes

认购日期

AnticipatedDateSigned

datetime

Yes

预计签约日期

ContractArea

nchar (10)

Yes

合同面积

TypeOfPanymentID

int

Yes

付款方式表,付款方式ID

PaymentDetailsOfNameID

int

Yes

付款方式明细表,付款名称细目ID

SalesAreaOfWayID

int

Yes

属性明细表,销售面积方式ID

FsvorableDiscount

decimal (18, 2)

Yes

优惠折扣

ClinchADealUnitPrice

money

Yes

成交单价

ClinchADealThePrice

money

Yes

成交总价

ClientID

int

Yes

客户信息表,客户ID

AgentID

int

Yes

员工表,经办人ID

BriefNote

nchar (20)

Yes

简要备注

ReviewWhether

bit

((0))

Yes

审核否

CancelWhether

bit

((0))

Yes

作废否

ChangeOfAuditStatusID

int

Yes

属性明细表,变更审核状态ID

RoomResourcesID

int

Yes

房间资源表,房源ID

AfterUpdateID

int

Yes

认购表,修改后的认购ID

表12: 认筹表 (dbo. PW_ClientConfessToRaise)

Primary Key(主键):  ClientConfessToRaiseID

非主键ID值均是外键

列名

数据类型

默认值

Nulls?

说明

ClientConfessToRaiseID

int - Identity

No

客户认筹ID

ClientID

int

Yes

客户信息表,客户ID

RaiseNumeralRecognition

nchar (10)

Yes

认筹排号

TheOrderNumber

nchar (10)

Yes

订单号

ConfessToRaiseClassificationID

int

Yes

属性明细表,筹卡分类ID

AccountsReceivableAppointmentGold

money

Yes

应收预约金

ConfesstoraiseDate

datetime

Yes

认筹日期

EffectiveDate

datetime

Yes

有效日期

IntentionUnitInstructions

nchar (10)

Yes

意向单元说明

Note

nchar (30)

Yes

备注

ToSeserve

bit

((0))

Yes

转预留否

SeserveID

int

Yes

预留表,预留ID

AuditWhether

bit

((0))

Yes

审核否

IncalidWhether

bit

((0))

Yes

作废否

AfterUpdateID

int

Yes

认筹表,修改后ID

2、具体代码实现

第一步:数据库存储过程

if @Type='CustomerQuery_Load_BindingdgvProject'--查询项目信息用来绑定dgv
begin
SELECT     ProjectID, rtrim(SortNumber) as SortNumber, rtrim(ProjectName) as ProjectName
FROM         SYS_ProjectInformation
end

if @Type='btnSelect_Click_SelectAppointCustomer'--条件查询客户
begin
with CTE as (--with用的是临时表,CTE是临时表的名字
SELECT     PW_ClientInformation.ClientName, PW_ClientInformation.ClientID, PW_ClientInformation.RelationPhone, 
           PW_ClientInformation.HomeBuyerConsultantID, SYS_Staff.StaffName
FROM         PW_ClientInformation INNER JOIN
                      SYS_Staff ON PW_ClientInformation.HomeBuyerConsultantID = SYS_Staff.StaffID
where  (PW_ClientInformation.ClientID  in(SELECT     ClientID 
FROM         PW_ClientConfessToRaise  where PW_ClientConfessToRaise.IncalidWhether=0) 
or  PW_ClientInformation.ClientID  in(SELECT     ClientID
FROM         PW_ReserveUnit    where  PW_ReserveUnit.IncalidOr=0 )
or  PW_ClientInformation.ClientID  in(SELECT     ClientID
FROM         PW_SeserveUnit    where  PW_SeserveUnit.IncalidOr=0 )
or  PW_ClientInformation.ClientID  in(SELECT     KeepPeople
FROM         PW_RoomSelect_Keep 
where PW_RoomSelect_Keep.IncalidOr=0)) and    PW_ClientInformation.IncalidOr=0  )
select  rtrim(ClientName) ClientName, ClientID, rtrim(RelationPhone) RelationPhone,HomeBuyerConsultantID,RTRIM(StaffName) as HomeBuyerConsultantName
from  CTE  --在临时表里边查询相关的信息
where   ClientName like '%' + rtrim(ltrim(@Condition)) + '%' or RelationPhone like '%' + rtrim(ltrim(@Condition)) + '%'--条件
end

if @Type='dgvProject_CellMouseDoubleClick_BindingcboFloor'--根据选定的项目,来绑定cbo楼栋
begin
SELECT     FloorID, rtrim(FloorName) as FloorName
FROM         SYS_FloorInformation
where  SYS_FloorInformation.ProjectID=@ProjectID
end

if @Type='cboBuildingNumber_SelectionChangeCommitted_BindingcboRoomResource'
begin
SELECT     RoomResourcesID, rtrim(Number) as Number
FROM         SYS_RoomResources 
where  RoomResourcesID in (SELECT     UnitNumberID
FROM         PW_ReserveUnit where  PW_ReserveUnit.IncalidOr=0)  and  SYS_RoomResources.FloorID=@FloorID
union --union是联合表的标志
SELECT     RoomResourcesID, rtrim(Number) as Number
FROM         SYS_RoomResources 
where  RoomResourcesID in (SELECT     RoomResourcesID
FROM         PW_RoomSelect_Keep where PW_RoomSelect_Keep.IncalidOr=0)  and  SYS_RoomResources.FloorID=@FloorID
union 
SELECT     RoomResourcesID, rtrim(Number) as Number
FROM         SYS_RoomResources 
where  RoomResourcesID in (SELECT     UnitNumberID
FROM         PW_SeserveUnit  where PW_SeserveUnit.IncalidOr=0)  and  SYS_RoomResources.FloorID=@FloorID
union 
SELECT     RoomResourcesID, rtrim(Number) as Number
FROM         SYS_RoomResources 
where  RoomResourcesID in (SELECT     RoomResourcesID
FROM         PW_SubscribeUnit where PW_SubscribeUnit.CancelWhether=0)  and  SYS_RoomResources.FloorID=@FloorID 
end

if @Type='cboRoomNumber_SelectionChangeCommitted_SelectCustomer'--根据选定的房源来查询所属房源相应的客户
begin
SELECT     RTRIM(PW_ClientInformation.RelationPhone) AS RelationPhone, PW_ClientInformation.HomeBuyerConsultantID, RTRIM(SYS_Staff.StaffName) AS HomeBuyerConsultantName, PW_ClientInformation.ClientID, 
           RTRIM(PW_ClientInformation.ClientName) as ClientName
FROM         PW_ClientInformation INNER JOIN
                      SYS_Staff ON PW_ClientInformation.HomeBuyerConsultantID = SYS_Staff.StaffID
where  PW_ClientInformation.ClientID in (
SELECT     ClientID FROM   PW_ReserveUnit  where PW_ReserveUnit.IncalidOr=0 and PW_ReserveUnit.ReserveUnitID=@RoomResourcesID)
or  PW_ClientInformation.ClientID in(
SELECT     KeepPeople FROM         PW_RoomSelect_Keep where  PW_RoomSelect_Keep.IncalidOr=0 and PW_RoomSelect_Keep.RoomResourcesID=@RoomResourcesID)
or  PW_ClientInformation.ClientID in(
SELECT     ClientID FROM         PW_SeserveUnit where PW_SeserveUnit.IncalidOr=0 and PW_SeserveUnit.SeserveUnitID=@RoomResourcesID)
or  PW_ClientInformation.ClientID in(
SELECT     ClientID FROM         PW_SubscribeUnit  where PW_SubscribeUnit.CancelWhether=0 and PW_SubscribeUnit.SubscribeUnitID=@RoomResourcesID)
end

if @Type='Binding_dgvdgvClientRecord'--查询客户记录
begin
SELECT     RTRIM(PW_ClientInformation.ClientNumber) AS ClientNumber, RTRIM(PW_ClientInformation.ClientName) AS ClientName, PW_ClientEventRecord.RecordDate AS RecordDate, 
                      RTRIM(PW_ClientEventRecord.Characteristic) AS Characteristic, RTRIM(PW_ClientEventRecord.explain) AS explain, PW_ClientInformation.ClientID
FROM         PW_ClientEventRecord INNER JOIN
                      PW_ClientInformation ON PW_ClientEventRecord.ClientID = PW_ClientInformation.ClientID
where   PW_ClientEventRecord.ClientID=@ClientID
end

 

第二步:BLL(逻辑层)具体代码

 

        [OperationContract]
        #region 绑定dgv项目
        public DataSet CustomerQuery_Load_BindingdgvProject()
        {
            SqlParameter[] SQLCMDpas = { 
                                           new SqlParameter("@Type", SqlDbType.Char),
                                          };
            SQLCMDpas[0].Value = "CustomerQuery_Load_BindingdgvProject";
            DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_CustomerQuery", SQLCMDpas);
            DataSet myDataSet = new DataSet();
            myDataSet.Tables.Add(myDataTable);
            return myDataSet;
        }
        #endregion

        [OperationContract]
        #region 模糊查询客户
        public DataSet btnSelect_Click_SelectAppointCustomer(string strCondition)
        {
            SqlParameter[] SQLCMDpas = { 
                                           new SqlParameter("@Type", SqlDbType.Char),
                                           new SqlParameter("@Condition", SqlDbType.Char),
                                          };
            SQLCMDpas[0].Value = "btnSelect_Click_SelectAppointCustomer";
            SQLCMDpas[1].Value = strCondition;
            DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_CustomerQuery", SQLCMDpas);
            DataSet myDataSet = new DataSet();
            myDataSet.Tables.Add(myDataTable);
            return myDataSet;
        }
        #endregion
        
        [OperationContract]
        #region 绑定cboFloor
        public DataSet dgvProject_CellMouseDoubleClick_BindingcboFloor(int intProjectID)
        {
            SqlParameter[] SQLCMDpas = { 
                                           new SqlParameter("@Type", SqlDbType.Char),
                                           new SqlParameter("@ProjectID", SqlDbType.Int),
                                          };
            SQLCMDpas[0].Value = "dgvProject_CellMouseDoubleClick_BindingcboFloor";
            SQLCMDpas[1].Value = intProjectID;
            DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_CustomerQuery", SQLCMDpas);
            DataSet myDataSet = new DataSet();
            myDataSet.Tables.Add(myDataTable);
            return myDataSet;
        }
        #endregion

        [OperationContract]
        #region 绑定cboRoomResource
        public DataSet cboBuildingNumber_SelectionChangeCommitted_BindingcboRoomResource(int intFloorID)
        {
            SqlParameter[] SQLCMDpas = { 
                                           new SqlParameter("@Type", SqlDbType.Char),
                                           new SqlParameter("@FloorID", SqlDbType.Int),
                                          };
            SQLCMDpas[0].Value = "cboBuildingNumber_SelectionChangeCommitted_BindingcboRoomResource";
            SQLCMDpas[1].Value = intFloorID;
            DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_CustomerQuery", SQLCMDpas);
            DataSet myDataSet = new DataSet();
            myDataSet.Tables.Add(myDataTable);
            return myDataSet;
        }
        #endregion

        [OperationContract]
        #region 绑定dgvClientRecord
        public DataSet Binding_dgvdgvClientRecord(int intClientID)
        {
            SqlParameter[] SQLCMDpas = { 
                                           new SqlParameter("@Type", SqlDbType.Char),
                                           new SqlParameter("@ClientID", SqlDbType.Int),
                                          };
            SQLCMDpas[0].Value = "Binding_dgvdgvClientRecord";
            SQLCMDpas[1].Value = intClientID;
            DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_CustomerQuery", SQLCMDpas);
            DataSet myDataSet = new DataSet();
            myDataSet.Tables.Add(myDataTable);
            return myDataSet;
        }
        #endregion

        [OperationContract]
        #region 根据房间查询客户
        public DataSet cboRoomNumber_SelectionChangeCommitted_SelectCustomer(int intRoomResourcesID)
        {
            SqlParameter[] SQLCMDpas = { 
                                           new SqlParameter("@Type", SqlDbType.Char),
                                           new SqlParameter("@RoomResourcesID", SqlDbType.Int),
                                          };
            SQLCMDpas[0].Value = "cboRoomNumber_SelectionChangeCommitted_SelectCustomer";
            SQLCMDpas[1].Value = intRoomResourcesID;
            DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_CustomerQuery", SQLCMDpas);
            DataSet myDataSet = new DataSet();
            myDataSet.Tables.Add(myDataTable);
            return myDataSet;
        }
        #endregion

 

第三步:界面层(UIL)的代码

        BLL新锐房地产销售系统.MarketManagement.frmMarketManagement_CustomerQuery.frmMarketManagement_CustomerQueryClient myfrmMarketManagement_CustomerQueryClient = new BLL新锐房地产销售系统.MarketManagement.frmMarketManagement_CustomerQuery.frmMarketManagement_CustomerQueryClient();//实例化BLL

        DataTable dtNotBuyClient = new DataTable();
        DataTable dtAllCustomer = new DataTable();
        private void frmMarketManagement_CustomerQuery_Load(object sender, EventArgs e)
        {
            DataTable dtProject = myfrmMarketManagement_CustomerQueryClient.CustomerQuery_Load_BindingdgvProject().Tables[0];
            dgvProject.DataSource = dtProject;
            DataTable dtHomeBuyerConsultant = myfrmMarketManagement_CustomerQueryClient.Binding_cboHomeBuyerConsultant().Tables[0];
            PublicMethod.SettingComboBox(cboHomeBuyerConsultant, dtHomeBuyerConsultant, "StaffID", "HomeBuyerConsultantName");//调用自己写的公用方法设置cbo数据源,具体调用之前的已经过,不详说
            dtNotBuyClient = myfrmMarketManagement_CustomerQueryClient.Binding_dgvNotBuyClient().Tables[0];//绑定dgv
            dgvNotBuyClient.DataSource = dtNotBuyClient;
            dtAllCustomer = myfrmMarketManagement_CustomerQueryClient.Binding_dgvAllCustomer().Tables[0];
            dgvAllCustomer.DataSource = dtAllCustomer;//绑定dgv
        }

        private void btnSelectProject_Click(object sender, EventArgs e)
        {
            dgvProject.Size =new Size(266, 125);//设定dgv的大小
            dgvProject.Visible = true;//设置dgv的可见性
        }

        private void dgvProject_MouseLeave(object sender, EventArgs e)
        {
            dgvProject.Visible = false;
        }

        int intProjectID = 0;//声明全局变量
        private void dgvProject_CellMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e)//dgv双击绑定客户
        {
            intProjectID = (int)dgvProject.CurrentRow.Cells["ProjectID"].Value;
            txtProjectName.Text = dgvProject.CurrentRow.Cells["项目名称"].Value.ToString().Trim();//绑定项目文本框
            dgvProject.Visible = false;
            DataTable dtFloor = myfrmMarketManagement_CustomerQueryClient.dgvProject_CellMouseDoubleClick_BindingcboFloor(intProjectID).Tables[0];
            PublicMethod.SettingComboBox(cboBuildingNumber, dtFloor, "FloorID", "FloorName");
            int intFloorID = (int)cboBuildingNumber.SelectedValue;
            DataTable dtRoomResource = myfrmMarketManagement_CustomerQueryClient.cboBuildingNumber_SelectionChangeCommitted_BindingcboRoomResource(intFloorID).Tables[0];
            PublicMethod.SettingComboBox(cboRoomNumber, dtRoomResource, "RoomResourcesID", "Number");
        }

        private void cboBuildingNumber_SelectionChangeCommitted(object sender, EventArgs e)
        {
            int intFloorID = (int)cboBuildingNumber.SelectedValue;//获取cbo楼栋选定的值
            DataTable dtRoomResource = myfrmMarketManagement_CustomerQueryClient.cboBuildingNumber_SelectionChangeCommitted_BindingcboRoomResource(intFloorID).Tables[0];
            PublicMethod.SettingComboBox(cboRoomNumber, dtRoomResource, "RoomResourcesID", "Number");//根据cbo楼栋选定的值查出一张表,再绑定到cbo房间号
        }

        private void cboRoomNumber_SelectionChangeCommitted(object sender, EventArgs e)
        {
            txtCientNameAndPhone.Text = "";
            int intRoomResourceID = (int)cboRoomNumber.SelectedValue;
            DataTable dtCustomer = myfrmMarketManagement_CustomerQueryClient.cboRoomNumber_SelectionChangeCommitted_SelectCustomer(intRoomResourceID).Tables[0];//根据选定的房间来查询客户
            if (dtCustomer.Rows.Count > 0)
            {
                int intCustomerID = (int)dtCustomer.Rows[0]["ClientID"];
                txtUnitNumber.Text = cboRoomNumber.Text.ToString();
                txtContactPhoneNumber.Text = dtCustomer.Rows[0]["RelationPhone"].ToString().Trim();
                txtHomeBuyerConsultant.Text = dtCustomer.Rows[0]["HomeBuyerConsultantName"].ToString().Trim();
                DataTable dtClientRecord = myfrmMarketManagement_CustomerQueryClient.Binding_dgvdgvClientRecord(intCustomerID).Tables[0];//根据选定的客户来绑定客户记录
                dgvClientRecord.DataSource = dtClientRecord;
            }
        }

        private void txtProjectName_TextChanged(object sender, EventArgs e)//当文本框的文本改变时候发生
        {
           string strProjectName=txtProjectName.Text.ToString().Trim();
           if (strProjectName == "")
           {
               dgvProject.Visible = false;
               return;
           }
           
        }

        private void txtCientNameAndPhone_KeyPress(object sender, KeyPressEventArgs e)//当文本框“客户姓名或电话”按下且放开一个键时发生
        {                      
            if (e.KeyChar == (char)Keys.Enter)//当按下的那个键时Enter键时,执行帮dgv的客户绑定,并相应查询记录
            {
                intCustomerID = (int)dgvCustomer.CurrentRow.Cells["CustomerID"].Value;
                txtCientNameAndPhone.Text = dgvCustomer.CurrentRow.Cells["CustomName"].Value.ToString().Trim();
                txtContactPhoneNumber.Text = dgvCustomer.CurrentRow.Cells["CustomerPhoneNumber"].Value.ToString().Trim();
                txtHomeBuyerConsultant.Text = dgvCustomer.CurrentRow.Cells["HomeBuyerConsultantName"].Value.ToString().Trim();
                DataTable dtClientRecord = myfrmMarketManagement_CustomerQueryClient.Binding_dgvdgvClientRecord(intCustomerID).Tables[0];//查询客户记录
                dgvClientRecord.DataSource = dtClientRecord;
                dgvCustomer.Visible = false;
                return;
            }           
        }

        private void dgvCustomer_MouseLeave(object sender, EventArgs e)//鼠标离开dgv的事件
        {
            dgvCustomer.Visible = false;//设置dgv可见性
        }

        private void txtCientNameAndPhone_Enter(object sender, EventArgs e)
        {
            string strCondition = txtCientNameAndPhone.Text.ToString().Trim();
            DataTable dtCustomer = myfrmMarketManagement_CustomerQueryClient.btnSelect_Click_SelectAppointCustomer(strCondition).Tables[0];
            dgvCustomer.DataSource = dtCustomer;
            dgvCustomer.Size = new Size(266, 125);//甚至dgv的大小
            dgvCustomer.Visible = true;//设置dgv 的可见性
        }

        int intCustomerID = 0;
        private void dgvCustomer_CellMouseDoubleClick(object sender, DataGridViewCellMouseEventArgs e)//dgv双击绑定客户
        {
            intCustomerID = (int)dgvCustomer.CurrentRow.Cells["CustomerID"].Value;
            txtCientNameAndPhone.Text = dgvCustomer.CurrentRow.Cells["CustomName"].Value.ToString().Trim();
            txtContactPhoneNumber.Text = dgvCustomer.CurrentRow.Cells["CustomerPhoneNumber"].Value.ToString().Trim();
            txtHomeBuyerConsultant.Text = dgvCustomer.CurrentRow.Cells["HomeBuyerConsultantName"].Value.ToString().Trim();
            DataTable dtClientRecord = myfrmMarketManagement_CustomerQueryClient.Binding_dgvdgvClientRecord(intCustomerID).Tables[0];
            dgvClientRecord.DataSource = dtClientRecord;//绑定客户重要事件记录
            dgvCustomer.Visible = false;
        }

        int intCurrentIndex = 0;
        private void txtCientNameAndPhone_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyValue == 38) //当按下上键时
            {
                if (intCurrentIndex > 0)
                    intCurrentIndex--;
            }
            if (e.KeyValue == 40)  //当按下下键时
            {
                if (intCurrentIndex < dgvCustomer.Rows.Count - 1)
                    intCurrentIndex++;
            }
            string strCondition = txtCientNameAndPhone.Text.ToString().Trim();
            dgvCustomer.CurrentCell = dgvCustomer.Rows[intCurrentIndex].Cells[0];
        }

        private void txtCientNameAndPhone_TextChanged(object sender, EventArgs e)
        {
             string strCondition = txtCientNameAndPhone.Text.ToString().Trim();
             DataTable dtCustomer = myfrmMarketManagement_CustomerQueryClient.btnSelect_Click_SelectAppointCustomer(strCondition).Tables[0];
             dgvCustomer.DataSource = dtCustomer;//绑定dgv客户
        }

2.未购客户批量查询

     具体视图如下:


 

从界面上可以看到我们这里用到的控件有

控件名称

说明

标注(Label)

控件可以在工具箱直接拖动至窗体,拖至窗体后右击属性可以修改控件的样式和各种属性,还可以编辑事件。

选项卡(TabControl)

复选框(CheckBox)

单选按钮(RadioButton)

文本(TextBox)

按钮(Button)

菜单(ToolStripMenuItem)

工具栏(ToolStrip)

组容器(GroupBox)

表格(DataGridView)

功能实现:

第一步:数据库

1、表与关系




表1: 房间资源表(dbo.SYS_RoomResource)

Primary Key(主键):  RoomResourcesID

非主键ID值均是外键

列名

数据类型

默认值

Nulls?

说明

RoomResourcesID

int - Identity

No

房间资源ID

FloorID

int

Yes

楼栋信息表,楼栋ID

TheCodeModelID

int

Yes

属性明细表,代码模式ID

Number

nchar (10)

Yes

编号

UnitNumberID

int

Yes

单元表,单元ID

FloorStotey

nchar (10)

Yes

楼层

RoomCategoryID

int

Yes

属性明细表,房间类别ID

TowardID

int

Yes

属性明细表,朝向ID

DoorModelID

int

Yes

属性明细表,户型ID

RoomTypeID

int

Yes

属性明细表,房间类型ID

RoomLandScapeID

int

Yes

属性明细表,房间景观ID

RoomSpecialID

int

Yes

属性明细表,房间特殊ID

ConstructionArea

decimal (18, 2)

Yes

建筑面积

PricateArea

decimal (18, 2)

Yes

私有面积

PublicArea

decimal (18, 2)

Yes

公摊面积

Usage

decimal (18, 2)

Yes

使用率

TheUnitPrice

decimal (18, 2)

Yes

标价单价

BidPrice

decimal (18, 2)

Yes

标价总价

NumberOfPrice

nchar (10)

Yes

价格次数

SalesStatusID

int

((102))

Yes

属性明细表,销售状态ID

BriefNote

nchar (30)

Yes

简要备注

SchematicDiagram

image

Yes

示意图

Chart

image

Yes

效果图

表2: 楼栋信息表(dbo.SYS_FloorInformation)

Primary Key(主键):  FloorID

非主键ID值均是外键

(这里因为在这个表里边没有设置有默认值,所以没有默认值的那一列)

列名

数据类型

Nulls?

说明

FloorID

int - Identity

No

楼栋ID

ProjectID

int

Yes

项目信息表,项目ID

FloorStructureID

int

Yes

属性明细表,楼栋结构ID

OpenBatchID

int

Yes

属性明细表,开盘批次ID

LaunchSituationID

int

Yes

属性明细表,推出情况ID

OpeningSituationID

int

Yes

属性明细表,开盘情况ID

FloorLevelID

int

Yes

楼栋级别ID

SortNumber

nchar (10)

Yes

序号

FloorName

nchar (20)

Yes

楼栋名称

PropertyRightFloorName

nchar (20)

Yes

产权楼栋名称

FloorStorey

nchar (10)

Yes

楼栋层数

LaunchDate

datetime

Yes

推出日期

DoMortgageDate

datetime

Yes

具备办按揭日期

CapsDate

datetime

Yes

封顶日期

AccumulationFundDate

datetime

Yes

具备办公积金日期

ExpectedPayDate

datetime

Yes

预计交房日期

PropertyRightDate

datetime

Yes

具备办产权日期

MakingRoomDate

datetime

Yes

交房日期

表3: 项目信息表(dbo.SYS_ProjectInformation)

Primary Key(主键):  ProjectID

非主键ID值均是外键

列名

数据类型

默认值

Nulls?

说明

ProjectID

int - Identity

No

项目ID

SortNumber

int

Yes

排序号

ProjectAreaID

int

Yes

属性明细表,项目区域ID

Project_FatherlID

int

Yes

项目信息表,项目级别ID

ProjectName

nchar (20)

Yes

项目名称

PropertyRightProjectName

nchar (20)

Yes

产权项目名称

ProjectCompanyName

nchar (20)

Yes

项目公司名称

ProjectAddress

nchar (50)

Yes

项目座落地址

CaseWhether

bit

Yes

是否结案

CancelWhether

bit

((0))

Yes

有效否

 

表4:  房源保留表(dbo.PW_RoomSelect_Keep)

Primary Key(主键):  KeepID

非主键ID值均是外键

列名

数据类型

默认值

Nulls?

说明

KeepID

int - Identity

No

保留ID

FloorID

int

Yes

楼栋信息表,楼栋ID

RoomResourcesID

int

Yes

房间资源ID,房间ID

UnitPrice

decimal (18, 2)

Yes

单价

Price

decimal (18, 2)

Yes

售价

KeepPeople

int

Yes

保留人

Note

nchar (300)

Yes

说明

StartDate

datetime

Yes

开始时间

KeepTime

nchar (10)

Yes

保留时长

KeepDate

nchar (10)

Yes

保留天数

OperatingPerson

int

Yes

经办人员

IncalidOr

bit

((0))

Yes

作废否

表5:  客户信息 (dbo.PW_ClientInformation)

Primary Key(主键):  ClientID

非主键ID值均是外键

列名

数据类型

默认值

Nulls?

说明

ClientID

int - Identity

No

客户ID

ProjectID

int

Yes

项目信息表,项目ID

ClientNumber

nchar (10)

Yes

客户编号

ClientName

nchar (10)

Yes

客户名称

EarlyVisitIntention

nchar (10)

Yes

初访意向

Gender

nchar (10)

Yes

性别

MaritalStatus

nchar (10)

Yes

婚否

ClientRegistrationWayID

int

Yes

属性明细表,客户登记方式ID

RelationPhone

nchar (15)

Yes

联系电话

ElectronMail

nchar (30)

Yes

电子邮箱

HomeBuyerConsultantID

int

Yes

员工表,置业顾问ID

DateOfVisit

datetime

Yes

来访日期

CommunicationAddress

nchar (50)

Yes

通讯地址

Postcode

nchar (10)

Yes

邮编

IDentityCard

nchar (30)

Yes

身份证号

BirthDay

date

Yes

出生日期

Age

nchar (20)

Yes

年龄

Professional

nchar (20)

Yes

职业

NowLivingArea

nchar (20)

Yes

现居住区域

LearnTheWayToTheCase

nchar (20)

Yes

获取本案途径

VisitConstitute

nchar (20)

Yes

来客构成

Traffic

nchar (20)

Yes

交通

RealEstateSituation

nchar (20)

Yes

置业状况

ResidentialMortgageLoans

nchar (20)

Yes

住宅按揭贷款

HomesBuyersPurpose

nchar (20)

Yes

置业目的

PlanTorealEstatePrice

nchar (20)

Yes

计划置业价格

DemandArea

nchar (20)

Yes

需求面积

PaymentWay

nchar (20)

Yes

付款方式ID

BuyingConsideration

nchar (20)

Yes

买房考虑因素

IncalidOr

bit

((0))

Yes

作废否

表6:  预定表 (dbo.PW_ReserveUnit)

Primary Key(主键):  ReserveUnitID

非主键ID值均是外键

列名

数据类型

默认值

Nulls?

说明

ReserveUnitID

int - Identity

No

预订单元ID

ClientID

int

Yes

客户表,客户ID

FloorID

int

Yes

楼栋信息表,楼栋ID

UnitNumberID

int

Yes

单元表,单元ID

RoomNumeral

nchar (10)

Yes

房间排号

PresalseArea

nchar (10)

Yes

预售面积

ReservationPrice

money

Yes

预收单价

BookingReservationPrice

money

Yes

预定总价

AccountsReceivableBookingGoid

money

Yes

应收预约金

BookingDate

datetime

Yes

预定日期

ValidDate

datetime

Yes

有效日期

BriefNote

nchar (20)

Yes

简要备注

AuditDate

date

Yes

审核日期

NewReserveUnitID

int

Yes

预定表,新预定ID

ChangeReason

int

Yes

属性明细表,变更原因ID

IncalidOr

bit

((0))

Yes

作废否

表7: 预留表 (dbo. PW_SeserveUnit)

Primary Key(主键):  SeserveUnitID

非主键ID值均是外键

列名

数据类型

默认值

Nulls?

说明

SeserveUnitID

int - Identity

No

预留单元ID

ClientID

int

Yes

客户信息表,客户ID

FloorID

int

Yes

楼栋信息表,楼栋ID

UnitNumberID

int

Yes

房间资源表,房间单元ID

RoomNumeral

nchar (10)

Yes

房间排号

PresalseArea

decimal (18, 2)

Yes

预售面积

SeservationUnitPrice

decimal (18, 2)

Yes

预留单价

BookingSeservationPrice

decimal (18, 2)

Yes

预留总价

AccountsReceivableBookingGoid

money

Yes

应收预约金

SeservatingDate

datetime

Yes

预留日期

ValidDate

datetime

Yes

有效日期

BriefNote

nchar (100)

Yes

简要备注

AuditDate

datetime

Yes

审核日期

NewSeserveUnitID

int

Yes

预留表,新的预留ID

ChangeReason

int

Yes

变更原因

IncalidOr

bit

((0))

Yes

作废否

表8: 认购表 (dbo. PW_SubscribeUnit)

Primary Key(主键):  SubscribeUnitID

非主键ID值均是外键

列名

数据类型

默认值

Nulls?

说明

SubscribeUnitID

int - Identity

No

认购单元ID

SalesChangeID

int

Yes

销售便更表,销售变更ID

SubscriptioNumber

nchar (20)

Yes

认购单编号

SubscribeToDate

datetime

Yes

认购日期

AnticipatedDateSigned

datetime

Yes

预计签约日期

ContractArea

nchar (10)

Yes

合同面积

TypeOfPanymentID

int

Yes

付款方式表,付款方式ID

PaymentDetailsOfNameID

int

Yes

付款方式明细表,付款名称细目ID

SalesAreaOfWayID

int

Yes

属性明细表,销售面积方式ID

FsvorableDiscount

decimal (18, 2)

Yes

优惠折扣

ClinchADealUnitPrice

money

Yes

成交单价

ClinchADealThePrice

money

Yes

成交总价

ClientID

int

Yes

客户信息表,客户ID

AgentID

int

Yes

员工表,经办人ID

BriefNote

nchar (20)

Yes

简要备注

ReviewWhether

bit

((0))

Yes

审核否

CancelWhether

bit

((0))

Yes

作废否

ChangeOfAuditStatusID

int

Yes

属性明细表,变更审核状态ID

RoomResourcesID

int

Yes

房间资源表,房源ID

AfterUpdateID

int

Yes

认购表,修改后的认购ID

表9: 认筹表 (dbo. PW_ClientConfessToRaise)

Primary Key(主键):  ClientConfessToRaiseID

非主键ID值均是外键

列名

数据类型

默认值

Nulls?

说明

ClientConfessToRaiseID

int - Identity

No

客户认筹ID

ClientID

int

Yes

客户信息表,客户ID

RaiseNumeralRecognition

nchar (10)

Yes

认筹排号

TheOrderNumber

nchar (10)

Yes

订单号

ConfessToRaiseClassificationID

int

Yes

属性明细表,筹卡分类ID

AccountsReceivableAppointmentGold

money

Yes

应收预约金

ConfesstoraiseDate

datetime

Yes

认筹日期

EffectiveDate

datetime

Yes

有效日期

IntentionUnitInstructions

nchar (10)

Yes

意向单元说明

Note

nchar (30)

Yes

备注

ToSeserve

bit

((0))

Yes

转预留否

SeserveID

int

Yes

预留表,预留ID

AuditWhether

bit

((0))

Yes

审核否

IncalidWhether

bit

((0))

Yes

作废否

AfterUpdateID

int

Yes

认筹表,修改后ID

表10: 员工表 (dbo. SYS_Staff)

Primary Key(主键):  StaffID

非主键ID值均是外键

列名

数据类型

Nulls?

说明

StaffID

int - Identity

No

员工ID

StaffNumber

nchar (10)

Yes

员工编号

StaffName

nchar (10)

Yes

员工姓名

DepartMentID

int

Yes

所属部门

GenderID

int

Yes

属性明细表,性别ID

Age

int

Yes

年龄

EducationBackgroundID

int

Yes

属性明细表,学历ID

MarryWhether

bit

Yes

婚否

Position

nchar (10)

Yes

职位

ContactPhoneNumber

nchar (15)

Yes

联系电话

ContactAddress

nchar (20)

Yes

联系地址

Notes

nchar (100)

Yes

备注

StaffImage

image

Yes

员工照片

 

 

2、具体代码实现

第一步:数据库存储过程

if @Type='Binding_dgvNotBuyClient'--查询未购客户
begin
with CTE as (
SELECT     rtrim(PW_ClientInformation.ClientName) as ClientName, PW_ClientInformation.ClientID, rtrim(PW_ClientInformation.RelationPhone) as  RelationPhone, PW_ClientInformation.HomeBuyerConsultantID, 
                      rtrim(SYS_Staff.StaffName) AS HomeBuyerConsultantName, rtrim(PW_ClientInformation.EarlyVisitIntention) as EarlyVisitIntention,  rtrim(PW_ClientInformation.Gender) as Gender,  rtrim(PW_ClientInformation.MaritalStatus) as MaritalStatus, 
                      PW_ClientInformation.ClientRegistrationWayID, rtrim(SYS_AttributeDetails.AuttributeDetailsName) AS ClientRegistrationWay,  rtrim(PW_ClientInformation.ElectronMail) as ElectronMail, PW_ClientInformation.DateOfVisit, 
                      rtrim(PW_ClientInformation.CommunicationAddress) as CommunicationAddress,  rtrim(PW_ClientInformation.Postcode) as Postcode,  rtrim(PW_ClientInformation.IDentityCard) as IDentityCard, PW_ClientInformation.BirthDay,  rtrim(PW_ClientInformation.Age) as Age, 
                      rtrim(PW_ClientInformation.Professional) as Professional,  rtrim(PW_ClientInformation.NowLivingArea) as NowLivingArea,  rtrim(PW_ClientInformation.LearnTheWayToTheCase) as LearnTheWayToTheCase,  rtrim(PW_ClientInformation.VisitConstitute) as VisitConstitute,  rtrim(PW_ClientInformation.Traffic) as Traffic, 
                      rtrim(PW_ClientInformation.RealEstateSituation) as RealEstateSituation,  rtrim(PW_ClientInformation.ResidentialMortgageLoans) as ResidentialMortgageLoans,  rtrim(PW_ClientInformation.HomesBuyersPurpose) as HomesBuyersPurpose,  rtrim(PW_ClientInformation.PlanTorealEstatePrice) as PlanTorealEstatePrice, 
                      rtrim(PW_ClientInformation.DemandArea) as DemandArea,  rtrim(PW_ClientInformation.PaymentWay) as PaymentWay,  rtrim(PW_ClientInformation.BuyingConsideration) as BuyingConsideration
FROM         PW_ClientInformation INNER JOIN
                      SYS_Staff ON PW_ClientInformation.HomeBuyerConsultantID = SYS_Staff.StaffID INNER JOIN
                      SYS_AttributeDetails ON PW_ClientInformation.ClientRegistrationWayID = SYS_AttributeDetails.AttributeDetailsID
where  (PW_ClientInformation.ClientID  not in(SELECT     ClientID 
FROM         PW_ClientConfessToRaise  where PW_ClientConfessToRaise.IncalidWhether=0) 
and  PW_ClientInformation.ClientID not in(SELECT     ClientID
FROM         PW_ReserveUnit    where  PW_ReserveUnit.IncalidOr=0 )
and  PW_ClientInformation.ClientID not in(SELECT     ClientID
FROM         PW_SeserveUnit    where  PW_SeserveUnit.IncalidOr=0 )
and  PW_ClientInformation.ClientID not in(SELECT     KeepPeople
FROM         PW_RoomSelect_Keep 
where PW_RoomSelect_Keep.IncalidOr=0))and   PW_ClientInformation.IncalidOr=0 )
SELECT     CTE.*
FROM     CTE
end

if @Type='Binding_cboHomeBuyerConsultant'--绑定置业顾问
begin
SELECT     StaffID, rtrim(StaffName) as HomeBuyerConsultantName
FROM         SYS_Staff
end

 

第二步:逻辑层(BLL)具体代码解释

 

        [OperationContract]
        #region 绑定未购客户
        public DataSet Binding_dgvNotBuyClient()
        {
            SqlParameter[] SQLCMDpas = { 
                                           new SqlParameter("@Type", SqlDbType.Char),
                                          };
            SQLCMDpas[0].Value = "Binding_dgvNotBuyClient";
            DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_CustomerQuery", SQLCMDpas);
            DataSet myDataSet = new DataSet();
            myDataSet.Tables.Add(myDataTable);
            return myDataSet;
        }
        #endregion

        [OperationContract]
        #region 绑定cbo置业顾问
        public DataSet Binding_cboHomeBuyerConsultant()
        {
            SqlParameter[] SQLCMDpas = { 
                                           new SqlParameter("@Type", SqlDbType.Char),
                                          };
            SQLCMDpas[0].Value = "Binding_cboHomeBuyerConsultant";
            DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_CustomerQuery", SQLCMDpas);
            DataSet myDataSet = new DataSet();
            myDataSet.Tables.Add(myDataTable);
            return myDataSet;
        }
        #endregion

 

第三步:界面层(UIL)具体事件代码

 

        string strCondition = "   1=1 ";
        string strConditionHomeBuyerConsultant = "";
        private void cboHomeBuyerConsultant_SelectionChangeCommitted(object sender, EventArgs e)
        {
            int intHomeBuyerConsultantID = (int)cboHomeBuyerConsultant.SelectedValue;
            strConditionHomeBuyerConsultant = " and HomeBuyerConsultantID=" + intHomeBuyerConsultantID;
            MultiConditionSelect(strCondition + strConditionHomeBuyerConsultant + strConditionGender);
        }

        string strConditionGender = "";
        private void pub_Gender_Click(object sender, EventArgs e)
        {
            RadioButton radPub = sender as RadioButton;
            if (radAllGender.Checked)//根据复选框是否选定来字符串拼接
            {
                strConditionGender = "";
                MultiConditionSelect(strCondition + strConditionHomeBuyerConsultant + strConditionGender);
            }
            if (radFemale.Checked)
            {
                strConditionGender = " and Gender ='女'";//拼接条件
                MultiConditionSelect(strCondition + strConditionHomeBuyerConsultant + strConditionGender);
            }
            if (radMale.Checked)
            {
                strConditionGender = " and Gender ='男'";
                MultiConditionSelect(strCondition + strConditionHomeBuyerConsultant + strConditionGender);
            }
        }

        /// <summary>
        /// 不定条件查询
        /// </summary>
        /// <param name="strConditionOfSelect">条件</param>
        void MultiConditionSelect(string strConditionOfSelect)
        {
            DataView dv = new DataView(dtNotBuyClient);
            dv.RowFilter = strConditionOfSelect;
            DataTable dt = dv.ToTable();
            dgvNotBuyClient.DataSource = dt;
        }

        private void Pub_rad_ES_Click(object sender, EventArgs e)//公用的单选框点击事件
        {            
            txtCustomerNameOrTelephone.Text = "";
            string strCondition = "";
            if (radAll_ES.Checked)
            {
                strCondition = "";
            }
            if (radMale_ES.Checked)
            {
                strCondition = " Gender ='男'";
            }
            if (radFemale_ES.Checked)
            {
                strCondition = "  Gender ='女'";
            }
            DataView dv = new DataView(dtAllCustomer);
            dv.RowFilter = strCondition;//过滤数据
            DataTable dt = dv.ToTable();
            dgvAllCustomer.DataSource = dt;
        }

3.客户交往批量查询



从界面上可以看到我们这里用到的控件有

控件名称

说明

标注(Label)

控件可以在工具箱直接拖动至窗体,拖至窗体后右击属性可以修改控件的样式和各种属性,还可以编辑事件。

选项卡(TabControl)

下拉框(ComboBox)

文本(TextBox)

按钮(Button)

菜单(ToolStripMenuItem)

工具栏(ToolStrip)

单选按钮(RadioButton)

组容器(GroupBox)

表格(DataGridView)

功能实现:

第一步:数据库

1、表与关系



表1: 房间资源表(dbo.SYS_RoomResource)

Primary Key(主键):  RoomResourcesID

非主键ID值均是外键

列名

数据类型

默认值

Nulls?

说明

RoomResourcesID

int - Identity

No

房间资源ID

FloorID

int

Yes

楼栋信息表,楼栋ID

TheCodeModelID

int

Yes

属性明细表,代码模式ID

Number

nchar (10)

Yes

编号

UnitNumberID

int

Yes

单元表,单元ID

FloorStotey

nchar (10)

Yes

楼层

RoomCategoryID

int

Yes

属性明细表,房间类别ID

TowardID

int

Yes

属性明细表,朝向ID

DoorModelID

int

Yes

属性明细表,户型ID

RoomTypeID

int

Yes

属性明细表,房间类型ID

RoomLandScapeID

int

Yes

属性明细表,房间景观ID

RoomSpecialID

int

Yes

属性明细表,房间特殊ID

ConstructionArea

decimal (18, 2)

Yes

建筑面积

PricateArea

decimal (18, 2)

Yes

私有面积

PublicArea

decimal (18, 2)

Yes

公摊面积

Usage

decimal (18, 2)

Yes

使用率

TheUnitPrice

decimal (18, 2)

Yes

标价单价

BidPrice

decimal (18, 2)

Yes

标价总价

NumberOfPrice

nchar (10)

Yes

价格次数

SalesStatusID

int

((102))

Yes

属性明细表,销售状态ID

BriefNote

nchar (30)

Yes

简要备注

SchematicDiagram

image

Yes

示意图

Chart

image

Yes

效果图

表2: 楼栋信息表(dbo.SYS_FloorInformation)

Primary Key(主键):  FloorID

非主键ID值均是外键

(这里因为在这个表里边没有设置有默认值,所以没有默认值的那一列)

列名

数据类型

Nulls?

说明

FloorID

int - Identity

No

楼栋ID

ProjectID

int

Yes

项目信息表,项目ID

FloorStructureID

int

Yes

属性明细表,楼栋结构ID

OpenBatchID

int

Yes

属性明细表,开盘批次ID

LaunchSituationID

int

Yes

属性明细表,推出情况ID

OpeningSituationID

int

Yes

属性明细表,开盘情况ID

FloorLevelID

int

Yes

楼栋级别ID

SortNumber

nchar (10)

Yes

序号

FloorName

nchar (20)

Yes

楼栋名称

PropertyRightFloorName

nchar (20)

Yes

产权楼栋名称

FloorStorey

nchar (10)

Yes

楼栋层数

LaunchDate

datetime

Yes

推出日期

DoMortgageDate

datetime

Yes

具备办按揭日期

CapsDate

datetime

Yes

封顶日期

AccumulationFundDate

datetime

Yes

具备办公积金日期

ExpectedPayDate

datetime

Yes

预计交房日期

PropertyRightDate

datetime

Yes

具备办产权日期

MakingRoomDate

datetime

Yes

交房日期

表3: 项目信息表(dbo.SYS_ProjectInformation)

Primary Key(主键):  ProjectID

非主键ID值均是外键

列名

数据类型

默认值

Nulls?

说明

ProjectID

int - Identity

No

项目ID

SortNumber

int

Yes

排序号

ProjectAreaID

int

Yes

属性明细表,项目区域ID

Project_FatherlID

int

Yes

项目信息表,项目级别ID

ProjectName

nchar (20)

Yes

项目名称

PropertyRightProjectName

nchar (20)

Yes

产权项目名称

ProjectCompanyName

nchar (20)

Yes

项目公司名称

ProjectAddress

nchar (50)

Yes

项目座落地址

CaseWhether

bit

Yes

是否结案

CancelWhether

bit

((0))

Yes

有效否

 

表4:  房源保留表(dbo.PW_RoomSelect_Keep)

Primary Key(主键):  KeepID

非主键ID值均是外键

列名

数据类型

默认值

Nulls?

说明

KeepID

int - Identity

No

保留ID

FloorID

int

Yes

楼栋信息表,楼栋ID

RoomResourcesID

int

Yes

房间资源ID,房间ID

UnitPrice

decimal (18, 2)

Yes

单价

Price

decimal (18, 2)

Yes

售价

KeepPeople

int

Yes

保留人

Note

nchar (300)

Yes

说明

StartDate

datetime

Yes

开始时间

KeepTime

nchar (10)

Yes

保留时长

KeepDate

nchar (10)

Yes

保留天数

OperatingPerson

int

Yes

经办人员

IncalidOr

bit

((0))

Yes

作废否

表5:  客户信息 (dbo.PW_ClientInformation)

Primary Key(主键):  ClientID

非主键ID值均是外键

列名

数据类型

默认值

Nulls?

说明

ClientID

int - Identity

No

客户ID

ProjectID

int

Yes

项目信息表,项目ID

ClientNumber

nchar (10)

Yes

客户编号

ClientName

nchar (10)

Yes

客户名称

EarlyVisitIntention

nchar (10)

Yes

初访意向

Gender

nchar (10)

Yes

性别

MaritalStatus

nchar (10)

Yes

婚否

ClientRegistrationWayID

int

Yes

属性明细表,客户登记方式ID

RelationPhone

nchar (15)

Yes

联系电话

ElectronMail

nchar (30)

Yes

电子邮箱

HomeBuyerConsultantID

int

Yes

员工表,置业顾问ID

DateOfVisit

datetime

Yes

来访日期

CommunicationAddress

nchar (50)

Yes

通讯地址

Postcode

nchar (10)

Yes

邮编

IDentityCard

nchar (30)

Yes

身份证号

BirthDay

date

Yes

出生日期

Age

nchar (20)

Yes

年龄

Professional

nchar (20)

Yes

职业

NowLivingArea

nchar (20)

Yes

现居住区域

LearnTheWayToTheCase

nchar (20)

Yes

获取本案途径

VisitConstitute

nchar (20)

Yes

来客构成

Traffic

nchar (20)

Yes

交通

RealEstateSituation

nchar (20)

Yes

置业状况

ResidentialMortgageLoans

nchar (20)

Yes

住宅按揭贷款

HomesBuyersPurpose

nchar (20)

Yes

置业目的

PlanTorealEstatePrice

nchar (20)

Yes

计划置业价格

DemandArea

nchar (20)

Yes

需求面积

PaymentWay

nchar (20)

Yes

付款方式ID

BuyingConsideration

nchar (20)

Yes

买房考虑因素

IncalidOr

bit

((0))

Yes

作废否

表6:  客户事件记录表 (dbo.PW_ClientEventRecord)

Primary Key(主键):  EventRecordID

非主键ID值均是外键

列名

数据类型

Nulls?

说明

EventRecordID

int - Identity

No

事件记录ID

ClientID

int

Yes

客户信息表,客户ID

RecordDate

datetime

Yes

记录日期

Characteristic

nchar (200)

Yes

特征

explain

nchar (200)

Yes

说明

表7:  客户交往明细表 (dbo.PW_ClientContractDetails)

Primary Key(主键):  ClientContractDetailsID

非主键ID值均是外键

列名

数据类型

Nulls?

说明

ClientContractDetailsID

int - Identity

No

客户交往明细ID

ProjectID

int

Yes

项目信息表,项目ID

ClientID

int

Yes

客户表,客户ID

ContractTime

datetime

Yes

交往时间

DegreeOfInterest

char (10)

Yes

意向程度

InteractionsID

int

Yes

属性明细表,交往方式ID

VisitFormID

int

Yes

属性明细表,来访形态ID

HomeBuyerConsultantID

int

Yes

员工表,置业顾问ID

RecommendedHousingID

int

Yes

房间资源表,推荐房源ID

CommunicationContent

nchar (30)

Yes

交往内容

表8:  预定表 (dbo.PW_ReserveUnit)

Primary Key(主键):  ReserveUnitID

非主键ID值均是外键

列名

数据类型

默认值

Nulls?

说明

ReserveUnitID

int - Identity

No

预订单元ID

ClientID

int

Yes

客户表,客户ID

FloorID

int

Yes

楼栋信息表,楼栋ID

UnitNumberID

int

Yes

单元表,单元ID

RoomNumeral

nchar (10)

Yes

房间排号

PresalseArea

nchar (10)

Yes

预售面积

ReservationPrice

money

Yes

预收单价

BookingReservationPrice

money

Yes

预定总价

AccountsReceivableBookingGoid

money

Yes

应收预约金

BookingDate

datetime

Yes

预定日期

ValidDate

datetime

Yes

有效日期

BriefNote

nchar (20)

Yes

简要备注

AuditDate

date

Yes

审核日期

NewReserveUnitID

int

Yes

预定表,新预定ID

ChangeReason

int

Yes

属性明细表,变更原因ID

IncalidOr

bit

((0))

Yes

作废否

表9: 保留表 (dbo. PW_RoomSelect_Keep)

Primary Key(主键):  KeepID

非主键ID值均是外键

列名

数据类型

默认值

Nulls?

说明

KeepID

int - Identity

No

保留ID

FloorID

int

Yes

楼栋信息表,楼栋ID

RoomResourcesID

int

Yes

房间资源表,房间ID

UnitPrice

decimal (18, 2)

Yes

单价

Price

decimal (18, 2)

Yes

售价

KeepPeople

int

Yes

保留人

Note

nchar (300)

Yes

说明

StartDate

datetime

Yes

开始时间

KeepTime

nchar (10)

Yes

保留时长

KeepDate

nchar (10)

Yes

保留天数

OperatingPerson

int

Yes

经办人员

IncalidOr

bit

((0))

Yes

作废否

表10: 预留表 (dbo. PW_SeserveUnit)

Primary Key(主键):  SeserveUnitID

非主键ID值均是外键

列名

数据类型

默认值

Nulls?

说明

SeserveUnitID

int - Identity

No

预留单元ID

ClientID

int

Yes

客户信息表,客户ID

FloorID

int

Yes

楼栋信息表,楼栋ID

UnitNumberID

int

Yes

房间资源表,房间单元ID

RoomNumeral

nchar (10)

Yes

房间排号

PresalseArea

decimal (18, 2)

Yes

预售面积

SeservationUnitPrice

decimal (18, 2)

Yes

预留单价

BookingSeservationPrice

decimal (18, 2)

Yes

预留总价

AccountsReceivableBookingGoid

money

Yes

应收预约金

SeservatingDate

datetime

Yes

预留日期

ValidDate

datetime

Yes

有效日期

BriefNote

nchar (100)

Yes

简要备注

AuditDate

datetime

Yes

审核日期

NewSeserveUnitID

int

Yes

预留表,新的预留ID

ChangeReason

int

Yes

变更原因

IncalidOr

bit

((0))

Yes

作废否

表11: 认购表 (dbo. PW_SubscribeUnit)

Primary Key(主键):  SubscribeUnitID

非主键ID值均是外键

列名

数据类型

默认值

Nulls?

说明

SubscribeUnitID

int - Identity

No

认购单元ID

SalesChangeID

int

Yes

销售便更表,销售变更ID

SubscriptioNumber

nchar (20)

Yes

认购单编号

SubscribeToDate

datetime

Yes

认购日期

AnticipatedDateSigned

datetime

Yes

预计签约日期

ContractArea

nchar (10)

Yes

合同面积

TypeOfPanymentID

int

Yes

付款方式表,付款方式ID

PaymentDetailsOfNameID

int

Yes

付款方式明细表,付款名称细目ID

SalesAreaOfWayID

int

Yes

属性明细表,销售面积方式ID

FsvorableDiscount

decimal (18, 2)

Yes

优惠折扣

ClinchADealUnitPrice

money

Yes

成交单价

ClinchADealThePrice

money

Yes

成交总价

ClientID

int

Yes

客户信息表,客户ID

AgentID

int

Yes

员工表,经办人ID

BriefNote

nchar (20)

Yes

简要备注

ReviewWhether

bit

((0))

Yes

审核否

CancelWhether

bit

((0))

Yes

作废否

ChangeOfAuditStatusID

int

Yes

属性明细表,变更审核状态ID

RoomResourcesID

int

Yes

房间资源表,房源ID

AfterUpdateID

int

Yes

认购表,修改后的认购ID

表12: 认筹表 (dbo. PW_ClientConfessToRaise)

Primary Key(主键):  ClientConfessToRaiseID

非主键ID值均是外键

列名

数据类型

默认值

Nulls?

说明

ClientConfessToRaiseID

int - Identity

No

客户认筹ID

ClientID

int

Yes

客户信息表,客户ID

RaiseNumeralRecognition

nchar (10)

Yes

认筹排号

TheOrderNumber

nchar (10)

Yes

订单号

ConfessToRaiseClassificationID

int

Yes

属性明细表,筹卡分类ID

AccountsReceivableAppointmentGold

money

Yes

应收预约金

ConfesstoraiseDate

datetime

Yes

认筹日期

EffectiveDate

datetime

Yes

有效日期

IntentionUnitInstructions

nchar (10)

Yes

意向单元说明

Note

nchar (30)

Yes

备注

ToSeserve

bit

((0))

Yes

转预留否

SeserveID

int

Yes

预留表,预留ID

AuditWhether

bit

((0))

Yes

审核否

IncalidWhether

bit

((0))

Yes

作废否

AfterUpdateID

int

Yes

认筹表,修改后ID

表13: 员工表 (dbo. SYS_Staff)

Primary Key(主键):  StaffID

非主键ID值均是外键

列名

数据类型

Nulls?

说明

StaffID

int - Identity

No

员工ID

StaffNumber

nchar (10)

Yes

员工编号

StaffName

nchar (10)

Yes

员工姓名

DepartMentID

int

Yes

所属部门

GenderID

int

Yes

属性明细表,性别ID

Age

int

Yes

年龄

EducationBackgroundID

int

Yes

属性明细表,学历ID

MarryWhether

bit

Yes

婚否

Position

nchar (10)

Yes

职位

ContactPhoneNumber

nchar (15)

Yes

联系电话

ContactAddress

nchar (20)

Yes

联系地址

Notes

nchar (100)

Yes

备注

StaffImage

image

Yes

员工照片

 

2、具体代码实现

第一步:数据库存储过程

if @Type='Binding_dgvAllCustomer'--查询所有客户
begin
SELECT     rtrim(PW_ClientInformation.ClientName) as ClientName, PW_ClientInformation.ClientID, rtrim(PW_ClientInformation.RelationPhone) as  RelationPhone, PW_ClientInformation.HomeBuyerConsultantID, 
                      rtrim(SYS_Staff.StaffName) AS HomeBuyerConsultantName, rtrim(PW_ClientInformation.EarlyVisitIntention) as EarlyVisitIntention,  rtrim(PW_ClientInformation.Gender) as Gender,  rtrim(PW_ClientInformation.MaritalStatus) as MaritalStatus, 
                      PW_ClientInformation.ClientRegistrationWayID, rtrim(SYS_AttributeDetails.AuttributeDetailsName) AS ClientRegistrationWay,  rtrim(PW_ClientInformation.ElectronMail) as ElectronMail, PW_ClientInformation.DateOfVisit, 
                      rtrim(PW_ClientInformation.CommunicationAddress) as CommunicationAddress,  rtrim(PW_ClientInformation.Postcode) as Postcode,  rtrim(PW_ClientInformation.IDentityCard) as IDentityCard, PW_ClientInformation.BirthDay,  rtrim(PW_ClientInformation.Age) as Age, 
                      rtrim(PW_ClientInformation.Professional) as Professional,  rtrim(PW_ClientInformation.NowLivingArea) as NowLivingArea,  rtrim(PW_ClientInformation.LearnTheWayToTheCase) as LearnTheWayToTheCase,  rtrim(PW_ClientInformation.VisitConstitute) as VisitConstitute,  rtrim(PW_ClientInformation.Traffic) as Traffic, 
                      rtrim(PW_ClientInformation.RealEstateSituation) as RealEstateSituation,  rtrim(PW_ClientInformation.ResidentialMortgageLoans) as ResidentialMortgageLoans,  rtrim(PW_ClientInformation.HomesBuyersPurpose) as HomesBuyersPurpose,  rtrim(PW_ClientInformation.PlanTorealEstatePrice) as PlanTorealEstatePrice, 
                      rtrim(PW_ClientInformation.DemandArea) as DemandArea,  rtrim(PW_ClientInformation.PaymentWay) as PaymentWay,  rtrim(PW_ClientInformation.BuyingConsideration) as BuyingConsideration
FROM         PW_ClientInformation INNER JOIN
                      SYS_Staff ON PW_ClientInformation.HomeBuyerConsultantID = SYS_Staff.StaffID INNER JOIN
                      SYS_AttributeDetails ON PW_ClientInformation.ClientRegistrationWayID = SYS_AttributeDetails.AttributeDetailsID
where   PW_ClientInformation.IncalidOr=0
end

if @Type='dgvAllCustomer_CellMouseClick_BindingdgvClientHistoryRecord'--根据客户查询相关交往的信息
begin
SELECT     RTRIM(SYS_AttributeDetails_1.AuttributeDetailsName) AS 交往方式, RTRIM(SYS_AttributeDetails.AuttributeDetailsName) AS 来访形态, 
					  PW_ClientContractDetails.ClientContractDetailsID, PW_ClientContractDetails.ClientID, PW_ClientContractDetails.ContractTime
					  AS 交往日期, RTRIM(PW_ClientContractDetails.DegreeOfInterest) AS 意向程度, PW_ClientContractDetails.InteractionsID, 
					  PW_ClientContractDetails.VisitFormID, PW_ClientContractDetails.HomeBuyerConsultantID, 
					  PW_ClientContractDetails.RecommendedHousing, RTRIM(PW_ClientContractDetails.CommunicationContent) AS 交往内容, RTRIM(SYS_Staff.StaffName) as 置业顾问
FROM         PW_ClientContractDetails INNER JOIN
					  SYS_AttributeDetails AS SYS_AttributeDetails_1 ON PW_ClientContractDetails.InteractionsID = SYS_AttributeDetails_1.AttributeDetailsID INNER JOIN
					  SYS_AttributeDetails ON PW_ClientContractDetails.VisitFormID = SYS_AttributeDetails.AttributeDetailsID INNER JOIN
					  SYS_Staff ON PW_ClientContractDetails.HomeBuyerConsultantID = SYS_Staff.StaffID
where    PW_ClientContractDetails.ClientID = @ClientID
end

 

第二步:逻辑层(BLL)

 

        [OperationContract]
        #region 绑定dgvAllCustomer
        public DataSet Binding_dgvAllCustomer()
        {
            SqlParameter[] SQLCMDpas = { 
                                           new SqlParameter("@Type", SqlDbType.Char),
                                          };
            SQLCMDpas[0].Value = "Binding_dgvAllCustomer";
            DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_CustomerQuery", SQLCMDpas);
            DataSet myDataSet = new DataSet();
            myDataSet.Tables.Add(myDataTable);
            return myDataSet;
        }
        #endregion

        [OperationContract]
        #region 条件绑定dgvClientHistoryRecord
        public DataSet dgvAllCustomer_CellMouseClick_BindingdgvClientHistoryRecord(int intClientID)
        {
            SqlParameter[] SQLCMDpas = { 
                                           new SqlParameter("@Type", SqlDbType.Char),
                                           new SqlParameter("@ClientID", SqlDbType.Int),
                                          };
            SQLCMDpas[0].Value = "dgvAllCustomer_CellMouseClick_BindingdgvClientHistoryRecord";
            SQLCMDpas[1].Value = intClientID;
            DataTable myDataTable = myDALPublic.DAL_SelectDB_Par("frmMarketManagement_CustomerQuery", SQLCMDpas);
            DataSet myDataSet = new DataSet();
            myDataSet.Tables.Add(myDataTable);
            return myDataSet;
        }
        #endregion

 

第三步:界面层(UIL)的代码

 

        private void dgvAllCustomer_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)//双击选择客户
        {
            int intClientID = (int)dgvAllCustomer.CurrentRow.Cells["客户ID_All"].Value;
            DataTable dtClientRecord = myfrmMarketManagement_CustomerQueryClient.dgvAllCustomer_CellMouseClick_BindingdgvClientHistoryRecord(intClientID).Tables[0];
            dgvClientHistoryRecord.DataSource = dtClientRecord;
        }

        private void txtCustomerNameOrTelephone_TextChanged(object sender, EventArgs e)//通过客户名称或者电话号码精确查询
        {          
            string strtxtCustomerNameOrTelephone = txtCustomerNameOrTelephone.Text.ToString().Trim();
            if (strtxtCustomerNameOrTelephone != "")
            {
                radAll_ES.Checked = true;
            }
            string strCondition = " ClientName like '%" + strtxtCustomerNameOrTelephone + "%' or  RelationPhone  like '%" + strtxtCustomerNameOrTelephone + "%'";//字符串拼接过滤条件
            DataView dv = new DataView(dtAllCustomer);
            dv.RowFilter = strCondition;//实现过滤
            DataTable dt = dv.ToTable();
            dgvAllCustomer.DataSource = dt;//绑定过滤后的信息
        }

        private void Pub_rad_ES_Click(object sender, EventArgs e)//公用的单选框点击事件
        {            
            txtCustomerNameOrTelephone.Text = "";
            string strCondition = "";
            if (radAll_ES.Checked)
            {
                strCondition = "";
            }
            if (radMale_ES.Checked)
            {
                strCondition = " Gender ='男'";
            }
            if (radFemale_ES.Checked)
            {
                strCondition = "  Gender ='女'";
            }
            DataView dv = new DataView(dtAllCustomer);
            dv.RowFilter = strCondition;//过滤数据
            DataTable dt = dv.ToTable();
            dgvAllCustomer.DataSource = dt;
        }




以上内容仅用于学习用途,如用于商业用途的,后果自负


































猜你喜欢

转载自blog.csdn.net/GX_BUG/article/details/46416299
今日推荐