客户管理系统之模块设计(六)

时间:2020-12-23 00:56:48

        2,添加服务信息和修改服务信息模块

        关于服务信息的添加模块和修改模块均使用的是一个窗体,其其区别是根据向窗体中所传递的参数来实现的,这个模块的服务主题,服务客户和服务内容是必填项,当添加服务时,其主要功能就是向CustomerManagement数据库的customer数据表中插入服务的基本信息;当更改服务信息时,其主要的功能就是更改CustomerManagement数据库中的servers数据表中的一条数据记录。

         添加或修改服务模块的示例:

客户管理系统之模块设计(六)

 

         (1)加载公共类和创建ID属性,代码为:

<span style="font-size:18px;">        common cm = new common();//加载公共类common
        database db = new database();//加载公共类database

        private int _id;
        public int ID//ID属性用于区分是添加服务还是修改服务信息
        {
            get//取属性值
            {
                return _id;
            }
            set
            {
                _id = value;//设置属性值
            }
        }</span>
<span style="font-size:18px;"> </span>

        添加ID属性,这个属性非常重要,它用来区分是添加服务信息,还是修改服务信息。

        (2)编写根据ID显示服务信息的代码为:

        <span style="font-size:18px;">private void showChildren2(int t)//根据ID显示客户资料
        {
            SqlDataReader dr;
            db.runSql("select * from servers where id=" + t, out dr);
            if (dr.Read())//显示出服务信息
            {
                tbServerTitle.Text = dr["title"].ToString();
                tbUserName.Text = dr["userName"].ToString();
                cm.cbbIndexByText(cbbServerType, dr["serverType"].ToString());
                cm.cbbIndexByText(cbbServerMode, dr["serverMode"].ToString());
                dtpStartTime.Value = DateTime.Parse(dr["startTime"].ToString());
                dtpEndTime.Value = DateTime.Parse(dr["endTime"].ToString());
                tbServerContent.Text = dr["serverContent"].ToString();
                cm.cbbIndexByText(cbbFeedback, dr["feedback"].ToString());
                tbRemark.Text = dr["remark"].ToString();
                cm.cbbIndexByText(cbbResult, dr["result"].ToString());
                dtpAddTime.Value = DateTime.Parse(dr["addTime"].ToString());
            }
            else
            {
                MessageBox.Show("你所要修改的项不存在,系统将关闭此窗体!");
                Close();
            }
            dr.Close();
        }</span>

 

        完整窗体代码为:

<span style="font-size:18px;">using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Data.SqlClient;//引入的命名空间

namespace 客户管理系统
{
    public partial class addChildren2 : Form
    {
        common cm = new common();//加载公共类common
        database db = new database();//加载公共类database

        private int _id;
        public int ID//ID属性用于区分是添加服务还是修改服务信息
        {
            get//取属性值
            {
                return _id;
            }
            set
            {
                _id = value;//设置属性值
            }
        }

        public addChildren2()
        {
            InitializeComponent();
        }

        private void btn_Select_Click(object sender, EventArgs e)//选择客户按钮的Click事件
        {
            ClientSelect cs = new ClientSelect();//创建ClientSelect窗体对象
            DialogResult result = cs.ShowDialog();//打开
            if (result==DialogResult.OK)
            {
                tbUserName.Text = cs.Person;//取Person属性值
            }
        }

        private void btn_Close_Click(object sender, EventArgs e)//关闭按钮的Click事件
        {
            Close();//关闭窗体
        }

        private void addChildren2_Load(object sender, EventArgs e)
        {
            try
            {
                cbbServerType.SelectedIndex = 0;//选择第一项
                cbbServerMode.SelectedIndex = 0;//选择第一项
                cbbFeedback.SelectedIndex = 0;//选择第一项
                cbbResult.SelectedIndex = 0;//选择第一项
                if (_id != 0)
                {
                    Text = "服务管理信息修改";//设置窗体标签
                    btn_add.Text = "修改";//设置按钮标签
                    showChildren2(_id);//显示数据
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message.ToString());//显示出错信息
            }
        }

        private void showChildren2(int t)//根据ID显示客户资料
        {
            SqlDataReader dr;
            db.runSql("select * from servers where id=" + t, out dr);
            if (dr.Read())//显示出服务信息
            {
                tbServerTitle.Text = dr["title"].ToString();
                tbUserName.Text = dr["userName"].ToString();
                cm.cbbIndexByText(cbbServerType, dr["serverType"].ToString());
                cm.cbbIndexByText(cbbServerMode, dr["serverMode"].ToString());
                dtpStartTime.Value = DateTime.Parse(dr["startTime"].ToString());
                dtpEndTime.Value = DateTime.Parse(dr["endTime"].ToString());
                tbServerContent.Text = dr["serverContent"].ToString();
                cm.cbbIndexByText(cbbFeedback, dr["feedback"].ToString());
                tbRemark.Text = dr["remark"].ToString();
                cm.cbbIndexByText(cbbResult, dr["result"].ToString());
                dtpAddTime.Value = DateTime.Parse(dr["addTime"].ToString());
            }
            else
            {
                MessageBox.Show("你所要修改的项不存在,系统将关闭此窗体!");
                Close();
            }
            dr.Close();
        }

        private void btn_add_Click(object sender, EventArgs e)
        {
            if (tbServerTitle.Text.Trim().Length<=0)
            {
                MessageBox.Show("请输入投诉主题");//判断是否输入投诉主题
                tbServerTitle.Focus();//主题框获取焦点
                return;
            }
            if (tbUserName.Text.Trim().Length<=0)
            {
                MessageBox.Show("请选择投诉客户");//判断是否选择投诉客户
                btn_Select.Focus();//主题框获取焦点
                return;
            }
            if (tbServerContent.Text.Trim().Length<=0)
            {
                MessageBox.Show("请输入服务内容");//判断是否输入投诉内容
                tbServerContent.Focus();//主题框获取焦点
                return;
            }
            string sql = "";
            string Rstatus = "添加";
            if (_id == 0)//添加服务信息的字符串
            {
                sql = "insert into servers(title,userName,serverType,serverMode,startTime,endTime,serverContent,feedback,remark,result,addTime)values"
                    + "('" + tbServerTitle.Text.Trim() + "','" + cbbServerType.Text + "','" + cbbServerMode.Text + "','" + dtpStartTime.Value + "','" + dtpEndTime.Value +
                "','" + tbServerContent.Text.Trim() + "','" + cbbFeedback.Text + "','" + tbRemark.Text.Trim() +
                "','" + cbbResult.Text + "','"+ dtpAddTime.Value + "')";
            }
            else//修改服务信息的字符串
            {
                Rstatus = "修改";
                sql = "update servers set title='" +
                    tbServerTitle.Text.Trim() + "',userName='" +
                    tbUserName.Text + "',serverType='" +
                    cbbServerType.Text + "',serverMode='" +
                    cbbServerMode.Text + "',startTime='" +
                    dtpStartTime.Value + "',endTime='" +
                    dtpEndTime.Text.Trim() + "',serverContent='" +
                    tbServerContent.Text.Trim() + "',feedback='" +
                    cbbFeedback.Text + "',remark='" +
                    tbRemark.Text.Trim() + "',result='" +
                    cbbResult.Text + "',addTime='" +
                    dtpAddTime.Value + "'where id=" + _id;
            }
            db.runSql(sql);//执行sql语句
            MessageBox.Show(Rstatus + "成功!");
        }
    }
}
</span>

 

        运行整个程序的结果为;

客户管理系统之模块设计(六)

 

        添加服务窗体:

客户管理系统之模块设计(六)

 

        修改服务信息资料窗体:

客户管理系统之模块设计(六)

 

        3,浏览模块设计

       有关服务管理浏览模块设计,主要是根据查询条件,在DataGridView控件中 显示有符合条件的数据,如不加条件,则显示所有数据。这个模块在设计服务管理模块的时候就已经设计了,这里就不再多说了。