---客户资料添加

1.事件流程:

aaarticlea/png;base64,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" alt="" />

-----增加的存储过程
ALTER PROCEDURE [dbo].[BioCrmCustomer_ADD]
@CustomerName nvarchar(100),
@JuridicalPerson nvarchar(100),
@Address nvarchar(100),
@Tel1 nvarchar(20),
@Tel2 nvarchar(20),
@Fax nvarchar(20),
@Email nvarchar(100),
@WebSite nvarchar(100),
@RegisterTime datetime,
@UserID int,
@CustomerLevel nvarchar(50),
@NextTime datetime,
@Source nvarchar(100),
@Type nvarchar(100),
@Vocation nvarchar(100),
@State nvarchar(50),
@Property nvarchar(100),
@Area nvarchar(100),
@Province nvarchar(20),
@City nvarchar(100),
@Bank nvarchar(50),
@Accounts nvarchar(100),
@TaxNumber nvarchar(100),
@Credit nvarchar(100),
@Integral int,
@Remark nvarchar(200) AS
INSERT INTO [BioCrmCustomer](
[CustomerName],[JuridicalPerson],[Address],[Tel1],[Tel2],[Fax],[Email],[WebSite],[RegisterTime],[UserID],[CustomerLevel],[NextTime],[Source],[Type],[Vocation],[State],[Property],[Area],[Province],[City],[Bank],[Accounts],[TaxNumber],[Credit],[Integral],[Remark]
)VALUES(
@CustomerName,@JuridicalPerson,@Address,@Tel1,@Tel2,@Fax,@Email,@WebSite,@RegisterTime,@UserID,@CustomerLevel,@NextTime,@Source,@Type,@Vocation,@State,@Property,@Area,@Province,@City,@Bank,@Accounts,@TaxNumber,@Credit,@Integral,@Remark
)

修改的存储过程:

ALTER PROCEDURE [dbo].[BioCrmCustomer_Update]
@CustomerID int, @CustomerNumber nvarchar(80),
@CustomerName nvarchar(100),
@JuridicalPerson nvarchar(100),
@Address nvarchar(100),
@Tel1 nvarchar(20),
@Tel2 nvarchar(20),
@Fax nvarchar(20),
@Email nvarchar(100),
@WebSite nvarchar(100),
@RegisterTime datetime,
@UserID int,
@CustomerLevel nvarchar(50),
@NextTime datetime,
@Source nvarchar(100),
@Type nvarchar(100),
@Vocation nvarchar(100),
@State nvarchar(50),
@Property nvarchar(100),
@Area nvarchar(100),
@Province nvarchar(20),
@City nvarchar(100),
@Bank nvarchar(50),
@Accounts nvarchar(100),
@TaxNumber nvarchar(100),
@Credit nvarchar(100),
@Integral int,
@Remark nvarchar(200),
@DeleteState bit
AS
----
UPDATE [BioCrmCustomer] SET
[CustomerNumber] = @CustomerNumber,[CustomerName] = @CustomerName,[JuridicalPerson]
= @JuridicalPerson,[Address] = @Address,[Tel1] = @Tel1,[Tel2] = @Tel2,[Fax] = @Fax,[Email]
= @Email,[WebSite] = @WebSite,[RegisterTime] = @RegisterTime,[UserID] = @UserID,[CustomerLevel]
= @CustomerLevel,[NextTime] = @NextTime,[Source] = @Source,[Type] = @Type,[Vocation] = @Vocation,[State]
= @State,[Property] = @Property,[Area] = @Area,[Province] = @Province,[City] = @City,[Bank] = @Bank,[Accounts]
= @Accounts,[TaxNumber] = @TaxNumber,[Credit] = @Credit,[Integral] = @Integral,[Remark]
= @Remark,[DeleteState] = @DeleteState
WHERE CustomerID=@CustomerID

BLL层的代码:

 public class BioCrmCustomerBLL
{
/// <summary>
/// 添加一个客户资料
/// </summary>
/// <param name="customer">BioCrmCustomer</param>
/// <returns>int</returns>
public int CustomerAdd(BioCrmCustomer customer)
{
SqlParameter[] parameters = {
new SqlParameter("@CustomerName", SqlDbType.NVarChar,100),
new SqlParameter("@JuridicalPerson", SqlDbType.NVarChar,100),
new SqlParameter("@Address", SqlDbType.NVarChar,100),
new SqlParameter("@Tel1", SqlDbType.NVarChar,20),
new SqlParameter("@Tel2", SqlDbType.NVarChar,20),
new SqlParameter("@Fax", SqlDbType.NVarChar,20),
new SqlParameter("@Email", SqlDbType.NVarChar,100),
new SqlParameter("@WebSite", SqlDbType.NVarChar,100),
new SqlParameter("@RegisterTime", SqlDbType.DateTime),
new SqlParameter("@UserID", SqlDbType.Int,4),
new SqlParameter("@CustomerLevel", SqlDbType.NVarChar,50),
new SqlParameter("@NextTime", SqlDbType.DateTime),
new SqlParameter("@Source", SqlDbType.NVarChar,100),
new SqlParameter("@Type", SqlDbType.NVarChar,100),
new SqlParameter("@Vocation", SqlDbType.NVarChar,100),
new SqlParameter("@State", SqlDbType.NVarChar,50),
new SqlParameter("@Property", SqlDbType.NVarChar,100),
new SqlParameter("@Area", SqlDbType.NVarChar,100),
new SqlParameter("@Province", SqlDbType.NVarChar,20),
new SqlParameter("@City", SqlDbType.NVarChar,100),
new SqlParameter("@Bank", SqlDbType.NVarChar,50),
new SqlParameter("@Accounts", SqlDbType.NVarChar,100),
new SqlParameter("@TaxNumber", SqlDbType.NVarChar,100),
new SqlParameter("@Credit", SqlDbType.NVarChar,100),
new SqlParameter("@Integral", SqlDbType.Int,4),
new SqlParameter("@Remark", SqlDbType.NVarChar,200),
};
parameters[0].Value = customer.CustomerName;
parameters[1].Value = customer.JuridicalPerson;
parameters[2].Value = customer.Address;
parameters[3].Value = customer.Tel1;
parameters[4].Value = customer.Tel2;
parameters[5].Value = customer.Fax;
parameters[6].Value = customer.Email;
parameters[7].Value = customer.WebSite;
parameters[8].Value = customer.RegisterTime;
parameters[9].Value = customer.UserID;
parameters[10].Value = customer.CustomerLevel;
parameters[11].Value = customer.NextTime;
parameters[12].Value = customer.Source;
parameters[13].Value = customer.Type;
parameters[14].Value = customer.Vocation;
parameters[15].Value = customer.State;
parameters[16].Value = customer.Property;
parameters[17].Value = customer.Area;
parameters[18].Value = customer.Province;
parameters[19].Value = customer.City;
parameters[20].Value = customer.Bank;
parameters[21].Value = customer.Accounts;
parameters[22].Value = customer.TaxNumber;
parameters[23].Value = customer.Credit;
parameters[24].Value = customer.Integral;
parameters[25].Value = customer.Remark;
return DataBaseHelper.ExcuteSqlReturnInt("BioCrmCustomer_ADD", CommandType.StoredProcedure, parameters); } /// <summary>
/// 修改客户资料
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public int CustomerUpdate(BioCrmCustomer model)
{
SqlParameter[] parameters = {
new SqlParameter("@CustomerID", SqlDbType.Int,4),
new SqlParameter("@CustomerNumber", SqlDbType.NVarChar,80),
new SqlParameter("@CustomerName", SqlDbType.NVarChar,100),
new SqlParameter("@JuridicalPerson", SqlDbType.NVarChar,100),
new SqlParameter("@Address", SqlDbType.NVarChar,100),
new SqlParameter("@Tel1", SqlDbType.NVarChar,20),
new SqlParameter("@Tel2", SqlDbType.NVarChar,20),
new SqlParameter("@Fax", SqlDbType.NVarChar,20),
new SqlParameter("@Email", SqlDbType.NVarChar,100),
new SqlParameter("@WebSite", SqlDbType.NVarChar,100),
new SqlParameter("@RegisterTime", SqlDbType.DateTime),
new SqlParameter("@UserID", SqlDbType.Int,4),
new SqlParameter("@CustomerLevel", SqlDbType.NVarChar,50),
new SqlParameter("@NextTime", SqlDbType.DateTime),
new SqlParameter("@Source", SqlDbType.NVarChar,100),
new SqlParameter("@Type", SqlDbType.NVarChar,100),
new SqlParameter("@Vocation", SqlDbType.NVarChar,100),
new SqlParameter("@State", SqlDbType.NVarChar,50),
new SqlParameter("@Property", SqlDbType.NVarChar,100),
new SqlParameter("@Area", SqlDbType.NVarChar,100),
new SqlParameter("@Province", SqlDbType.NVarChar,20),
new SqlParameter("@City", SqlDbType.NVarChar,100),
new SqlParameter("@Bank", SqlDbType.NVarChar,50),
new SqlParameter("@Accounts", SqlDbType.NVarChar,100),
new SqlParameter("@TaxNumber", SqlDbType.NVarChar,100),
new SqlParameter("@Credit", SqlDbType.NVarChar,100),
new SqlParameter("@Integral", SqlDbType.Int,4),
new SqlParameter("@Remark", SqlDbType.NVarChar,200),
new SqlParameter("@DeleteState", SqlDbType.Bit,1)};
parameters[0].Value = model.CustomerID;
parameters[1].Value = model.CustomerNumber;
parameters[2].Value = model.CustomerName;
parameters[3].Value = model.JuridicalPerson;
parameters[4].Value = model.Address;
parameters[5].Value = model.Tel1;
parameters[6].Value = model.Tel2;
parameters[7].Value = model.Fax;
parameters[8].Value = model.Email;
parameters[9].Value = model.WebSite;
parameters[10].Value = model.RegisterTime;
parameters[11].Value = model.UserID;
parameters[12].Value = model.CustomerLevel;
parameters[13].Value = model.NextTime;
parameters[14].Value = model.Source;
parameters[15].Value = model.Type;
parameters[16].Value = model.Vocation;
parameters[17].Value = model.State;
parameters[18].Value = model.Property;
parameters[19].Value = model.Area;
parameters[20].Value = model.Province;
parameters[21].Value = model.City;
parameters[22].Value = model.Bank;
parameters[23].Value = model.Accounts;
parameters[24].Value = model.TaxNumber;
parameters[25].Value = model.Credit;
parameters[26].Value = model.Integral;
parameters[27].Value = model.Remark;
parameters[28].Value = model.DeleteState; return DataBaseHelper.ExcuteSqlReturnInt("BioCrmCustomer_Update", CommandType.StoredProcedure, parameters);
} /// <summary>
/// 根据客户id获取客户信息
/// </summary>
/// <param name="id">id</param>
/// <returns>BioCrmCustomer</returns>
public BioCrmCustomer GetCustomerByID(string id)
{
SqlDataReader reader= SqlComm.GetDataReaderByCondition("BioCrmCustomer", "*", " CustomerID=" + id);
BioCrmCustomer customer = new BioCrmCustomer();
while (reader.Read())
{
customer.CustomerID = int.Parse(reader["CustomerID"].ToString());
customer.CustomerNumber = reader["CustomerNumber"].ToString();
customer.CustomerName= reader["CustomerNumber"].ToString();
customer.JuridicalPerson = reader["JuridicalPerson"].ToString();
customer.Address = reader["Address"].ToString();
customer.Tel1 = reader["Tel1"].ToString();
customer.Tel2 = reader["Tel2"].ToString();
customer.Fax = reader["Fax"].ToString();
customer.Email = reader["Email"].ToString();
customer.WebSite = reader["WebSite"].ToString();
customer.RegisterTime =Convert.ToDateTime(reader["RegisterTime"].ToString());
customer.UserID = int.Parse(reader["UserID"].ToString());
customer.CustomerLevel = reader["CustomerLevel"].ToString();
customer.NextTime =Convert.ToDateTime(reader["NextTime"].ToString());
customer.Source = reader["Source"].ToString();
customer.Type = reader["Type"].ToString();
customer.Vocation = reader["Vocation"].ToString();
customer.State = reader["State"].ToString();
customer.Property = reader["Property"].ToString();
customer.Area = reader["Area"].ToString();
customer.Province = reader["Province"].ToString();
customer.City = reader["City"].ToString();
customer.Bank = reader["Bank"].ToString();
customer.Accounts = reader["Accounts"].ToString();
customer.TaxNumber = reader["TaxNumber"].ToString();
customer.Credit = reader["Credit"].ToString();
customer.Integral =int.Parse( reader["Integral"].ToString());
customer.Remark = reader["Remark"].ToString();
customer.DeleteState =Convert.ToBoolean(reader["DeleteState"].ToString());
}
reader.Close();
return customer;
}
}

获取省份的代码:

 /// <summary>
/// 获取省份列表
/// </summary>
/// <returns></returns>
public static DataTable getProvinceInfoList()
{
SqlParameter[] pars = new SqlParameter[]{
new SqlParameter("@tableName","tbProvinceInfo"),
new SqlParameter("@columns","*")
}; return DataBaseHelper.SelectSQLReturnDataSet("getDataByTableNameValue", CommandType.StoredProcedure, pars).Tables[0];
} /// <summary>
/// 根据省份ID获取对应的城市
/// </summary>
/// <param name="ProvinceID"></param>
/// <returns></returns>
public static DataTable getCityListByProvinceID(string ProvinceID)
{
SqlParameter[] pars = new SqlParameter[]{
new SqlParameter("@tableName","tbCityInfo"),
new SqlParameter("@columns"," * "),
new SqlParameter("@condition"," ProvinceInfoID ="+ProvinceID)
}; return DataBaseHelper.SelectSQLReturnDataSet("GetDataByCondition", CommandType.StoredProcedure, pars).Tables[0];
}

存储过程:

ALTER PROCEDURE [dbo].[getDataByTableNameValue]
@tableName nvarchar(500),
@columns nvarchar(2000)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @Sql nvarchar(4000)
SET @Sql='select '+@columns+' from '+@tableName
EXEC(@Sql)
END ----根据指定列,指定条件,指定表查询数据
ALTER PROCEDURE [dbo].[GetDataByCondition]
@tableName nvarchar(200),
@columns nvarchar(500),
@condition nvarchar(500)=' 1=1' AS
BEGIN SET NOCOUNT ON;
DECLARE @sqlStr nvarchar(2000)
SET @sqlStr='select '+@columns+' from '+@tableName+' where '+@condition
EXEC(@sqlStr) END

触发器的定义:

触发器是一种DBMS响应特殊表或列的INSERT,UPDATE,DELETE操作的特殊类型的存储过程

自动生成客户编号的触发器:

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER TRIGGER [dbo].[CreateCustomerNoByCustomerID]
ON [dbo].[BioCrmCustomer]
AFTER INSERT
AS
BEGIN
DECLARE @str nvarchar(10)
DECLARE @CustomerNo nvarchar(50)
DECLARE @CustomerID nvarchar(50)
SET @str='0000000'
SELECT @CustomerID=MAX(CustomerID) FROM dbo.BioCrmCustomer
SET @CustomerNo=RIGHT(@str+@CustomerID,7)
UPDATE dbo.BioCrmCustomer SET CustomerNumber=@CustomerNo WHERE CustomerID=@CustomerID
end

添加的前台页面:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="CustomerAdd.aspx.cs" Inherits="BioErpWeb.CRMSystem.CustomerAdd"  %>

<%@ Register assembly="AjaxControlToolkit" namespace="AjaxControlToolkit" tagprefix="cc1" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<link href="../Styles/ERPBaseStyle.css" rel="stylesheet" type="text/css" />
<link href="../Styles/CalenderStyle.css" rel="stylesheet" type="text/css" />
<script src="../JS/CheckUserName.js" type="text/javascript"></script> <script src="../Scripts/jquery-1.4.1.min.js" type="text/javascript"></script>
<style type="text/css">
.style1
{
height: 22px;
}
.style3
{
width: 252px;
}
.style4
{
width: 94px;
}
.style5
{
width: 71px;
}
</style> <script type="text/javascript">
$(document).ready(function () {
$("#btnSubmit").click(function () {
var customer = $("#txtCustomerName");
if (customer.val() == '') {
alert('必须填写客户名称');
return false;
} var JuridicalPerson = $("#txtJuridicalPerson");
if (JuridicalPerson.val() == '') {
alert('必须填写法人代表');
return false;
} var txtRegisterTime = $("#txtRegisterTime");
if (txtRegisterTime.val() == '') {
alert('公司注册时间必须填写');
txtRegisterTime.focus();
return false;
} var txtNextTime = $("#txtNextTime");
if (txtNextTime.val() == '') {
alert('下次联系时间必须填写');
txtNextTime.focus();
return false;
} var txtUserName = $("#txtUserName");
if (txtUserName.val() == '') {
alert('所属销售代表');
txtRegisterTime.focus();
return false;
} var ddlProvince = $("#ddlProvince");
var selectCaption = ddlProvince.select(); if (selectCaption.val() == 0) {
alert("请选择所属省份");
ddlProvince.focus();
return false;
} var ddlCity = $("#ddlCity");
var selectCityCaption = ddlCity.select(); if (selectCityCaption.val() =='') {
alert("请选择所属城市");
ddlCity.focus();
return false;
}
var txtIntegral = $("#txtIntegral");
if (txtIntegral.val() == '') {
alert('请填写用户积分');
txtIntegral.focus();
return false;
} return true; }); }); </script>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<div>
<table class="maintable">
<tr>
<td colspan="4" class="titlebar"><span>客户信息添加</span></td>
</tr>
<tr>
<td>客户名</td><td><asp:TextBox ID="txtCustomerName" runat="server"></asp:TextBox></td>
<td>法人代表</td><td><asp:TextBox ID="txtJuridicalPerson" runat="server"></asp:TextBox></td>
</tr>
<tr>
<td>企业地址</td><td><asp:TextBox ID="txtAddress" runat="server"></asp:TextBox></td>
<td>传真</td><td><asp:TextBox ID="txtFax" runat="server"></asp:TextBox></td>
</tr>
<tr>
<td>电话号码1</td><td><asp:TextBox ID="txtTel1" runat="server"></asp:TextBox></td>
<td>电话号码2</td><td><asp:TextBox ID="txtTel2" runat="server"></asp:TextBox></td>
</tr>
<tr>
<td>Email邮件</td><td><asp:TextBox ID="txtEmail" runat="server"></asp:TextBox></td>
<td>公司网址</td><td><asp:TextBox ID="txtWebSite" runat="server"></asp:TextBox></td>
</tr>
<tr>
<td>注册时间</td><td><asp:TextBox ID="txtRegisterTime" runat="server"></asp:TextBox>
<cc1:CalendarExtender ID="ceRegisterTime" TargetControlID="txtRegisterTime" Format="yyyy-MM-dd" runat="server">
</cc1:CalendarExtender>
</td>
<td>所属销售代表</td><td><asp:TextBox ID="txtUserName" runat="server"></asp:TextBox><input type="button" style=" width:60px" value="选择" onclick="showDialog()"/></td>
</tr>
<tr>
<td>税号</td><td><asp:TextBox ID="txtTaxNumber" runat="server"></asp:TextBox></td>
<td>下次联系时间</td><td><asp:TextBox ID="txtNextTime" runat="server"></asp:TextBox> <cc1:CalendarExtender ID="ceNextTime" TargetControlID="txtNextTime" Format="yyyy-MM-dd" runat="server">
</cc1:CalendarExtender>
</td>
</tr>
<tr>
<td>客户状态</td><td>
<asp:DropDownList ID="ddlState" runat="server">
<asp:ListItem>良好</asp:ListItem>
<asp:ListItem>一般</asp:ListItem>
</asp:DropDownList>
</td>
<td>客户来源</td><td>
<asp:DropDownList ID="ddlSource" runat="server">
<asp:ListItem>国内</asp:ListItem>
<asp:ListItem>国外</asp:ListItem>
</asp:DropDownList>
</td>
</tr>
<tr>
<td class="style1">客户类型</td><td class="style1">
<asp:DropDownList ID="ddlType" runat="server">
<asp:ListItem>国有</asp:ListItem>
<asp:ListItem>民营</asp:ListItem>
<asp:ListItem>外资</asp:ListItem>
<asp:ListItem>合资</asp:ListItem>
<asp:ListItem>个体</asp:ListItem>
</asp:DropDownList>
</td>
<td class="style1">所属行业</td><td class="style1">
<asp:DropDownList ID="ddlVocation" runat="server">
<asp:ListItem>制造</asp:ListItem>
<asp:ListItem>服务</asp:ListItem>
<asp:ListItem>教育</asp:ListItem>
<asp:ListItem>医疗</asp:ListItem>
</asp:DropDownList>
</td>
</tr>
<tr>
<td>客户性质</td><td>
<asp:DropDownList ID="ddlProperty" runat="server">
<asp:ListItem>高端客户</asp:ListItem>
<asp:ListItem>中端客户</asp:ListItem>
<asp:ListItem>低端客户</asp:ListItem>
</asp:DropDownList>
</td>
<td>客户等级</td><td>
<asp:DropDownList ID="ddlCustomerLevel" runat="server">
<asp:ListItem>一级</asp:ListItem>
<asp:ListItem>二级</asp:ListItem>
<asp:ListItem>三级</asp:ListItem>
<asp:ListItem>四级</asp:ListItem>
</asp:DropDownList>
</td>
</tr>
<tr>
<td colspan="4"> <asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<table style=" width:100%; border:0px;">
<tr>
<td class="style5">省份</td><td class="style3">
<asp:DropDownList ID="ddlProvince" runat="server" Width="150px" AutoPostBack="True"
onselectedindexchanged="ddlProvince_SelectedIndexChanged">
</asp:DropDownList>
</td>
<td class="style4">城市</td>
<td>
<asp:DropDownList ID="ddlCity" Width="150px" runat="server">
</asp:DropDownList>
</td>
</tr>
</table>
</ContentTemplate>
</asp:UpdatePanel> </td>
</tr> <tr>
<td>开户银行</td><td><asp:TextBox ID="txtBank" runat="server"></asp:TextBox></td>
<td>银行账号</td><td><asp:TextBox ID="txtAccounts" runat="server"></asp:TextBox></td>
</tr> <tr>
<td>积分</td><td><asp:TextBox ID="txtIntegral" runat="server"></asp:TextBox></td>
<td>信用级别</td><td><asp:TextBox ID="txtCredit" runat="server"></asp:TextBox></td>
</tr> <tr>
<td>所属区域</td><td>
<asp:DropDownList ID="ddlArea" runat="server" Width="150px"
>
<asp:ListItem>东</asp:ListItem>
<asp:ListItem>西</asp:ListItem>
<asp:ListItem>南</asp:ListItem>
<asp:ListItem>北</asp:ListItem>
</asp:DropDownList>
</td>
<td> </td><td> </td>
</tr> <tr>
<td>备注:</td><td colspan="3">
<asp:TextBox ID="txtRemark" runat="server" Rows="5" TextMode="MultiLine"
Width="580px"></asp:TextBox>
</td>
</tr> <tr>
<td colspan="4" class="bottomtd"> <asp:Button ID="btnSubmit" runat="server" Text="客户资料添加"
onclick="btnSubmit_Click" /> </td>
</tr> </table>
<br />
</div>
</form>
</body>
</html>

后台代码:

 public partial class CustomerAdd : System.Web.UI.Page
{ protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
ddlProvinceBind();
}
} public void ddlProvinceBind()
{
this.ddlProvince.DataSource = SqlComm.getProvinceInfoList();
this.ddlProvince.DataTextField = "ProvinceInfoName";
this.ddlProvince.DataValueField = "ProvinceInfoID";
this.ddlProvince.DataBind();
this.ddlProvince.Items.Add(new ListItem("--请选择省份--","0"));
this.ddlProvince.SelectedValue="0";
} protected void btnSubmit_Click(object sender, EventArgs e)
{
BioCrmCustomer customer = new BioCrmCustomer();
customer.CustomerName = this.txtCustomerName.Text;
customer.JuridicalPerson = this.txtJuridicalPerson.Text;
customer.Address = this.txtAddress.Text;
customer.Fax = this.txtFax.Text;
customer.Tel1 = this.txtTel1.Text;
customer.Tel2 = this.txtTel2.Text;
customer.Email = this.txtEmail.Text;
customer.WebSite = this.txtWebSite.Text;
customer.RegisterTime = Convert.ToDateTime(this.txtRegisterTime.Text);
customer.UserID = int.Parse(this.txtUserName.Text);
customer.TaxNumber = this.txtTaxNumber.Text;
customer.NextTime = Convert.ToDateTime(this.txtNextTime.Text);
customer.State= this.ddlState.SelectedItem.Text;
customer.Source = this.ddlState.SelectedItem.Text;
customer.CustomerLevel = this.ddlCustomerLevel.SelectedItem.Text;
customer.Property = this.ddlProperty.SelectedItem.Text;
customer.Type = this.ddlType.SelectedItem.Text;
customer.Vocation = this.ddlVocation.SelectedItem.Text; customer.Province = this.ddlProvince.SelectedItem.Text;
customer.City = this.ddlCity.SelectedItem.Text; customer.Bank = this.txtBank.Text;
customer.Accounts = this.txtAccounts.Text;
customer.Integral =int.Parse(this.txtIntegral.Text.Trim());
customer.Credit = this.txtCredit.Text;
customer.Remark = this.txtRemark.Text;
customer.Area = this.ddlArea.SelectedValue;
BioCrmCustomerBLL custormerbll = new BioCrmCustomerBLL();
if (custormerbll.CustomerAdd(customer) != 0)
{
ScriptManager.RegisterStartupScript(this, this.GetType(), "test", "alert('添加成功')", true);
Server.Transfer("CustomerListShow.aspx");
}
else
{
ScriptManager.RegisterStartupScript(this, this.GetType(), "test", "alert('添加失败')", true);
Server.Transfer("CustomerListShow.aspx");
}
} protected void ddlProvince_SelectedIndexChanged(object sender, EventArgs e)
{
if (this.ddlProvince.SelectedValue != "0")
{
string ProvinceId = this.ddlProvince.SelectedValue.ToString();
ddlCity.DataSource = SqlComm.getCityListByProvinceID(ProvinceId);
ddlCity.DataTextField = "CityInfoName";
ddlCity.DataValueField = "CityInfoID";
ddlCity.DataBind();
}
} }

CRM客户关系管理系统(十三)的更多相关文章

  1. Django CRM客户关系管理系统

    CRM需求分析 随着信息化时代带来的科技创新,CRM客户关系管理系统带来的效益在已经成为很多企业提高竞争优势的一分部,CRM客户关系管理系统将企业管理和客户关系管理集成到统一的平台,其系统功能主要体现 ...

  2. CRM 客户关系管理系统

    CRM(Customer Relationship Manager)客户关系管理系统 企业为提高核心竞争力,利用相应的信息技术以及互联网技术协调企业与顾客间在销售.营销和服务上的交互,从而提升其管理方 ...

  3. CRM客户关系管理系统 北京易信软科信息技术有限公司

    北京易信软科信息技术有限公司 推出大型erp系统,库存管理系统,客户关系管理系统,车辆登记管理系统,员工管理系统,采购管理系统,销售管理系统,为您的企业提供最优质的产品服务 北京易信软科您可信赖的北京 ...

  4. CRM客户关系管理系统-需求概设和详设

    大概设计 大概设计就是对需求进行一个整体性分析,把需要实现的功能都列出来,对于客户关系管理系统,我们需要从角色出发,从而确定有哪些需求,最好是画个思维导图 首先我们是为培训学校这么一个场景来开发的,所 ...

  5. Django项目:CRM(客户关系管理系统)--70--60PerfectCRM实现CRM学生上课记录

    #urls.py """PerfectCRM URL Configuration The `urlpatterns` list routes URLs to views. ...

  6. Django项目:CRM(客户关系管理系统)--58--48PerfectCRM实现CRM客户报名流程学生合同

    # sales_urls.py # ————————47PerfectCRM实现CRM客户报名流程———————— from django.conf.urls import url from bpm. ...

  7. CRM客户关系管理系统有哪些优缺点?

    CRM系统不仅仅是一种技术,也是面向企业的客户管理系统.客户关系管理软件可以帮助销售员快速地找到客户信息,帮助销售员跟踪客户直到完成订单.为提高企业销售效率,CRM被越来越多的企业所采用. 那么,作为 ...

  8. CRM客户关系管理系统(一)

    第一章.CRM介绍和开发流程 1.1.CRM简介 客户关系管理(CRM) 客户关系管理(customer relationship management)的定义是:企业为提高核心竞争力,利用相应的信息 ...

  9. Django项目:CRM(客户关系管理系统)--84--74PerfectCRM实现CRM权限和权限组限制访问URL

    #models.py # ————————01PerfectCRM基本配置ADMIN———————— from django.db import models # Create your models ...

  10. Django项目:CRM(客户关系管理系统)--85--75PerfectCRM实现CRM扩展权限

    # sales_urls.py # ————————47PerfectCRM实现CRM客户报名流程———————— from django.conf.urls import url from bpm. ...

随机推荐

  1. uva--1339 - Ancient Cipher(模拟水体系列)

    1339 - Ancient Cipher Ancient Roman empire had a strong government system with various departments, ...

  2. Java文件编码格式转换

    转自博文<Java文件编码格式转换>: 默认被转换的格式为GBK,转换成的格式为UTF-8 import info.monitorenter.cpdetector.CharsetPrint ...

  3. 冲销交货单WS_REVERSE_GOODS_ISSUE

    LOOP AT ITAB. AT END OF VBELN. PERFORM FRM_LOCK_DELIVERY(ZSDS0002) USING ITAB-VBELN. CALL FUNCTION ' ...

  4. 500 TypeError: Cannot read property 'connect.sid' of undefined

    1:在写passport验证测试用例时,发现有几个引用中间件顺序的错误,检查发现,passport验证写的是session,在传错误信息的时候req.flash调用也需要用到session中间件,否则 ...

  5. iframe-摘自网友

    定义和用法 iframe 元素会创建包含另外一个文档的内联框架(即行内框架). HTML 与 XHTML 之间的差异 在 HTML 4.1 Strict DTD 和 XHTML 1.0 Strict ...

  6. Android Bundle、Handler和Message类介绍

    Bundle是一个载体,可以存放基本数据类型.对象等内容,相当于一辆汽车,可以装载很多东西,然后运到需要的地方,例如: Bundle mBundle=new Bundle(); mBundle.put ...

  7. 377. Combination Sum IV——DP本质:针对结果的迭代,dp[ans] <= dp[ans-i] & dp[i] 找三者关系 思考问题的维度+1,除了数据集迭代还有考虑结果

    Given an integer array with all positive numbers and no duplicates, find the number of possible comb ...

  8. BZOJ3888 [Usaco2015 Jan]Stampede

    我们只要把每头牛开始遮挡视线和结束遮挡视线的时间点都搞出来就好= = 再按照y轴排序...然后变成线段覆盖了..线段树搞一下就好了? /******************************** ...

  9. POJ 3687 逆序拓扑

    额.题目大意:有N个球.编号和重量都是唯一不重复的.然后.给你m个pair a和b,表示编号为a的点一定比编号为b的点轻.然后捏.输出每个点对应的重量.关键是要求.如果有多种可能性的话,输出让序号小的 ...

  10. [css]邮件的写法

    <style type="text/css">        /* Client-specific Styles */        #outlook a{paddin ...