WPF_实现新增

下面给大家做一个新增的功能的。首先我们要建立一个demo模型,demo模型有两个端口,分别是服务端和客户端,在启动客户端之前一定要先启动服务端,否则系统无法运行,会出现错误,因为客户端的数据是通过服务端来传输的。在实现新增数据之前我们要先在数据库那里把存储过程写好,然后在通过服务器来引用传送到客户端中去。因为职务、工作状态、员工类型和性别多事下拉框,所以,我们在存储过程中要写好下拉框的存储信息,

--(下拉框) 性别

IF(@Type='InsertStaffInformation_Loaded_SelectGender')

        SELECT   RTRIM(detailed_attribute_gather_id) AS Gender_id,

                 RTRIM(detailed_attribute_gather_name) AS Gender_name

        FROM      t_detailed_attribute_gather

        WHERE t_detailed_attribute_gather.attribute_gather_id =11

        union

        Select 0,'---请选择---' from t_detailed_attribute_gather

--(下拉框) 工作状态

IF(@Type='InsertStaffInformation_Loaded_SelectWorkStatus')

        SELECT   RTRIM(detailed_attribute_gather_id) AS WorkStatus_id,

                 RTRIM(detailed_attribute_gather_name) AS WorkStatus_name

        FROM      t_detailed_attribute_gather

        WHERE t_detailed_attribute_gather.attribute_gather_id =7

        union

        Select 0,'---请选择---' from t_detailed_attribute_gather

--(下拉框) 员工类型

IF(@Type='UserControl_Loaded_SelectEmployeeType')

        SELECT   RTRIM(detailed_attribute_gather_id) AS EmployeeType_id,

                 RTRIM(detailed_attribute_gather_name) AS EmployeeType_name

        FROM      t_detailed_attribute_gather

        WHERE t_detailed_attribute_gather.attribute_gather_id =6

              and t_detailed_attribute_gather.f_attribute_gather_id=@fid

        union

        Select 0,'---请选择---' from t_detailed_attribute_gather

--(下拉框) 职务

IF(@Type='InsertStaffInformation_Loaded_SelectPost')

  BEGIN

        SELECT   RTRIM(detailed_attribute_gather_id) AS Post_id,

                 RTRIM(detailed_attribute_gather_name) AS Post_name

        FROM      t_detailed_attribute_gather

        WHERE t_detailed_attribute_gather.attribute_gather_id =12

        union

        Select 0,'---请选择---' from t_detailed_attribute_gather

  END

接着在到新增的员工的信息,对新增的存储信息进行一个判断,EXISTS用于检查子查询是否至少会返回一行数据,该子查询实际上并不返回任何数据,而是返回值True或False,同时指定一个子查询,检测 行 的存在。

   --新增员工基本信息

IF(@type='btn_Affirm_Click_InsertStaff') 

    BEGIN

        if exists(select 0 from t_staff where staff_number=@staff_number or id_card=@id_card)

            begin          

                return

            end

        else

            begin          

                INSERT t_staff(as_employee_type_id, as_work_status_id, as_branch_id, staff_name, staff_number, as_gender_id, age, id_card, birth,

                phone_number, address, e_mail, entry_date, departure_date, operator_no, picture, note)

                VALUES (@as_employee_type_id, @as_work_status_id, @as_branch_id, @staff_name, @staff_number, @as_gender_id, @age, @id_card, @birth,

                @phone_number, @address, @e_mail, @entry_date, @departure_date, @operator_no, @picture, @note)

            end

    END

写好数据库的存储过程之后,接这执行下一步。第二步,书写服务,。[OperationContract]是操作契约,在写服务的时候必须写,如果不写将不会调用数据。首先,1、我们要先定义服务契约。2、实例化数据层。3、定义要传递的参数和类型(前提是传过来的参数必须与数据库的参数保持一致)。4、获取数据库中的存储过程,然后执行,配置服务,配置成功后,复制配置成功的网址,然后到客户端中对服务器进行引用。书写新增的员工信息。

[OperationContract]//新增员工信息

        #region 新增员工资料

        public int btn_Affirm_Click_InsertStaff(int intas_employee_type_id, int intas_work_status_id, int intas_branch_id, string strstaff_name,

           string strstaff_number, int intas_gender_id, string strage, string strid_card, DateTime dtmbirth,

           string strphone_number, string straddress, string stre_mail, DateTime dtmentry_date, DateTime dtmdeparture_date, bool bloperator_no,

            byte[][] bytepicture, string strnote)

        {

            //声明变量接收=>文件名字

            string strPatientPhotos = WenJianLiuZhuanHuanLuJing(bytepicture);

            SqlParameter[] SQLCMDpas ={

            new  SqlParameter ("@Type",SqlDbType.Char),

            new  SqlParameter ("@as_employee_type_id",SqlDbType.Int),

            new  SqlParameter ("@as_work_status_id",SqlDbType.Int),

            new  SqlParameter ("@as_branch_id",SqlDbType.Int),

            new  SqlParameter ("@staff_name",SqlDbType.Char),

            new  SqlParameter ("@staff_number",SqlDbType.Char),

            new  SqlParameter ("@as_gender_id",SqlDbType.Int),

            new  SqlParameter ("@age",SqlDbType.Char),

            new  SqlParameter ("@id_card",SqlDbType.Char),

            new  SqlParameter ("@birth",SqlDbType.DateTime),

            new  SqlParameter ("@phone_number",SqlDbType.Char),

            new  SqlParameter ("@address",SqlDbType.Char),

            new  SqlParameter ("@e_mail",SqlDbType.Char),

            new  SqlParameter ("@entry_date",SqlDbType.DateTime),

            new  SqlParameter ("@departure_date",SqlDbType.DateTime),

            new  SqlParameter ("@operator_no",SqlDbType.Bit),

            new  SqlParameter ("@picture",SqlDbType.Char),

            new  SqlParameter ("@note",SqlDbType.Char),

                     };

//对对象赋值

            SQLCMDpas[0].Value = "btn_Affirm_Click_InsertStaff";

            SQLCMDpas[1].Value = intas_employee_type_id;

            SQLCMDpas[2].Value = intas_work_status_id;

            SQLCMDpas[3].Value = intas_branch_id;

            SQLCMDpas[4].Value = strstaff_name;

            SQLCMDpas[5].Value = strstaff_number;

            SQLCMDpas[6].Value = intas_gender_id;

            SQLCMDpas[7].Value = strage;

            SQLCMDpas[8].Value = strid_card;

            SQLCMDpas[9].Value = dtmbirth;

            SQLCMDpas[10].Value = strphone_number;

            SQLCMDpas[11].Value = straddress;

            SQLCMDpas[12].Value = stre_mail;

            SQLCMDpas[13].Value = dtmentry_date;

            SQLCMDpas[14].Value = dtmdeparture_date;

            SQLCMDpas[15].Value = bloperator_no;

            SQLCMDpas[16].Value = strPatientPhotos;//文件名字

            SQLCMDpas[17].Value = strnote;

            int count = myDALMethod.UpdateData("UC_StaffInformation", SQLCMDpas);

            return count;

        }

填写好新增的内容之后,对新增内容点击确认保存新增的内容,同时对数据进行判断。

//1.6新增保存按钮

        private void btn_Save_Click(object sender, RoutedEventArgs e)

        {

            try

            {

                //提取上传的文件

                byte[][] bytepicture = new byte[lstBytes.Count][];

                for (int i = 0; i < lstBytes.Count; i++)

                {

                    bytepicture[i] = lstBytes[i];//提取图片

                }

                if (cbo_StaffType.SelectedValue.ToString() != string.Empty && cbo_Work.SelectedValue.ToString() != string.Empty

                && cbo_Post.SelectedValue.ToString() != string.Empty && txt_Name.Text.ToString() != string.Empty

                && txt_Number.Text.ToString() != string.Empty && cbo_gender.SelectedValue.ToString() != string.Empty

                && txt_idCar.Text.ToString() != string.Empty && dtp_Birthday.Text.ToString() != string.Empty

                && dtp_EnterDate.Text.ToString() != string.Empty && dtp_LeaveDate.Text.ToString() != string.Empty)

             {

        int intas_employee_type_id = Convert.ToInt32(cbo_StaffType.SelectedValue);

        int intas_work_status_id = Convert.ToInt32(cbo_Work.SelectedValue);

        int intas_branch_id = Convert.ToInt32(cbo_Post.SelectedValue);

        string strstaff_name = txt_Name.Text.ToString();

        string strstaff_number = txt_Number.Text.ToString();

        int intas_gender_id = Convert.ToInt32(cbo_gender.SelectedValue);

        string strage = txt_Age.Text.ToString();

          string strid_card = txt_idCar.Text.ToString();

          DateTime dtmbirth = Convert.ToDateTime(dtp_Birthday.Text.ToString());

          string strphone_number = txt_PhoneNumber.Text.ToString();

          string straddress = txt_Address.Text.ToString();

          string stre_mail = txt_Email.Text.ToString();

        DateTime dtmentry_date = Convert.ToDateTime(dtp_EnterDate.Text.ToString());

    DateTime dtmdeparture_date = Convert.ToDateTime(dtp_LeaveDate.Text.ToString());

           bool bloperator_no = (bool)chk_operator.IsChecked;//获取checkbox

           string strnote = txt_Note.Text.ToString();

           //2.新增保存

          int count = myClient.btn_Affirm_Click_InsertStaff(intas_employee_type_id,

intas_work_status_id,intas_branch_id,strstaff_name,strstaff_number,intas_gender_id, strage, strid_card, dtmbirth, strphone_number, straddress, stre_mail,dtmentry_date, dtmdeparture_date, bloperator_no, bytepicture, strnote);

           if (count > 0)

             {

               //1.获取页面输入的内容

               MessageBoxResult dr = MessageBox.Show("新增员工资料成功!", "系统提示", MessageBoxButton.OKCancel, MessageBoxImage.Warning); //弹出确定对话框

                        if (dr == MessageBoxResult.OK) //如果点了确定按钮

                        {

                            //关闭当前窗口                 

                            this.Close();

                        }

                    }

                    else if (count == -1)

                    {

                        MessageBox.Show("员工信息已填写重复!", "系统提示", MessageBoxButton.OK,

                           MessageBoxImage.Warning); //弹出确定对话框

                    }

                }

                else

                {

                    MessageBox.Show("员工资料还没完整填完,请继续");

                }

            }

            catch (Exception)

            {

                throw;

            }

    }

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值