课上练习《火车售票维护系统 WPF版—— 车辆管理》

课上练习《火车售票维护系统WPF版—— 车辆管理》

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

开发工具与关键技术: Visual Studio 2015 * SQL Server

作者:

撰写时间:2019年01月01日

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

车辆管理模块有查询、新增、修改、删除。

  

查询:先在数据库查询出页面所需要的字段,再在服务端写查询代码,再通过页面选中的车辆信息的行点击出现车厢的明细信息,再通过点击车厢信息的行出现座位的明细信息,可以通过搜索框的模糊查询查询出想要的字段,否则查询全部数据。

 

 

服务端的代码:  

[OperationContract]

        #region 查询车辆信息

        public DataSet UserControl_Loaded_SelectTrain()

        {

            SqlParameter[] SQLCMDpas =

            {

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

            };

            SQLCMDpas[0].Value = "UserControl_Loaded_SelectTrain";

            DataTable myDataTable = myDALMethod.QueryDataTable("frm_Compartment", SQLCMDpas);

            DataSet myDataSet = new DataSet();

            myDataSet.Tables.Add(myDataTable);

            return myDataSet;

        }

        #endregion

 

 

客户端的代码:调用封装好的表格的公共样式,先让页面一加载时,修改和删除按钮不能点击,先设置IsEnabled 为 false,和半透明来达到不能点击的效果,再查询出表格数据。

 private void UserControl_Loaded(object sender, RoutedEventArgs e)

        {

            //调用封装好的公共样式

            PublicStyles.PublicStaticMothd.SetDgStyle(dgTrain);

            PublicStyles.PublicStaticMothd.SetDgStyle(dgCompartment);

            PublicStyles.PublicStaticMothd.SetDgStyle(dgSeat);

            btn_Update.IsEnabled = false;

            btn_Update.Opacity = 0.5;

            btn_Delete.IsEnabled = false;

            btn_Delete.Opacity = 0.5;

 

            GetTable();//刷新表格

        }

//刷新表格的方法

private void GetTable()

        {

            dtTrain = myClient.UserControl_Loaded_SelectTrain().Tables[0];

            dgTrain.ItemsSource = dtTrain.DefaultView;//绑定表格数据

        }

课上练习《火车售票维护系统 WPF版—— 车辆管理》

        

新增:先绑定下拉框再判断页面数据是否能为空再给数据赋值,也通过文本框改变事件车厢个数的个数不能大于车厢最大个数,如果大于则提示和清空数据。图片显示点击“浏览”按钮弹出显示图片的所有文件夹,如果想要显示多张图片,则把Multiselect的属性设置为true即可;

 

// 新增保存方法:

private void btn_Affirm_Click(object sender, RoutedEventArgs e)

        {

            try

            {

                rowIndex = -1;

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

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

                {

                    bytWenJian[i] = lstBytes[i];

                }

                if (cbo_TrainType.SelectedValue.ToString() != "" && cbo_principal.SelectedValue.ToString() != "" && cbo_linkman.SelectedValue.ToString() != ""

                    && txt_train_number.Text != "" && txt_bottom_number.Text != "" && txt_BiggestNumber.Text != "" && txt_Remark.Text != "")

                {

                    int intas_type_id = Convert.ToInt32(cbo_TrainType.SelectedValue);

                    int intprincipal_id = Convert.ToInt32(cbo_principal.SelectedValue);

                    int intlinkman_id = Convert.ToInt32(cbo_linkman.SelectedValue);

                    string strtrain_number = txt_train_number.Text.ToString();

                    string strbottom_number = txt_bottom_number.Text.ToString();

                    DateTime dtproduction_date = DateTime.Now;

                    DateTime dtexpiration_date = DateTime.Now;

                    string strbiggest_pitch = txt_BiggestNumber.Text.ToString();

                    bool blusing_no = false;

                    bool bldisable = false;

                    string strnote = txt_Remark.Text.ToString();

                    string strrate = txt_Rate.Text.ToString().Trim();

                    DataTable dtTrain = myClient.UserControl_Loaded_InsertTrain(intas_type_id, intprincipal_id, intlinkman_id, strtrain_number,

                      strbottom_number, dtproduction_date, dtexpiration_date, strbiggest_pitch, bytWenJian, blusing_no, bldisable, strnote, strrate).Tables[0];

                    inttrain_id = Convert.ToInt32(dtTrain.Rows[0][0].ToString());

                }

                if (inttrain_id > 0)

                {

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

                    {

                        KaiGuan = true;

                        int intas_car_type_id = Convert.ToInt32(dg.Rows[i]["CarTypeID"]);

                        string strcar_number = dg.Rows[i]["car_number"].ToString();

                        string seat_number = dg.Rows[i]["seat_number"].ToString();

                        string strnote = ((DataRowView)dgCompartment.Items[i]).Row["note"].ToString();

                        DataTable dts = InsertSeat(intas_car_type_id.ToString(), seat_number.ToString());

                        DataTable dtCar = myClient.UserControl_Loaded_InsertCar(intas_car_type_id, strcar_number, strnote, inttrain_id).Tables[0];

                        intcar_id = Convert.ToInt32(dtCar.Rows[0][0].ToString());

                        if (intcar_id > 0)

                        {

                            for (int j = 0; j < dts.Rows.Count; j++)

                            {

                                string strseat_number = dts.Rows[j]["seat_number"].ToString();

                                string strseatnote = dts.Rows[j]["seat_type"].ToString();

                                int count = myClient.UserControl_Loaded_InsertCarSeat(intcar_id, intas_car_type_id, strseat_number, strseatnote);

                                if (count > 0)

                                {

                                    if (i == dg.Rows.Count - 1 && j == dts.Rows.Count - 1)

                                    {

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

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

                                        {

                                            this.Close();

                                        }

                                    }

                                }

                                else

                                {

                                    MessageBox.Show("新增车辆失败");

                                    break;

                                }

                            }

                        }

                        else

                        {

                            MessageBox.Show("新增车辆失败");

                        }

 

 

                    }

                }

 

            }

            catch (Exception)

            {

 

                throw;

            }

 

        }

         课上练习《火车售票维护系统 WPF版—— 车辆管理》

 

删除:先声明一个字段来记录删除成功的条数,在判断提示用户是否要删除,如果点了OK按钮就执行删除操作,想要删除车辆信息先要删除车厢信息和座位信息。

 

// 删除按钮

 private void btnDelete_Click(object sender, RoutedEventArgs e)

        {

            try

            {

                int intDSum = 0;//记录删除成功的条数

                MessageBoxResult dr = MessageBox.Show("是否要删除?", "系统提示", MessageBoxButton.OKCancel, MessageBoxImage.Question);

                //如果点了确定按钮

                if (dr == MessageBoxResult.OK)

                {

                    int inttrain_id = Convert.ToInt32(((DataRowView)dgTrain.CurrentItem).Row["train_id"]);

 

                    int intTrainCount = myClient.UserControl_Loaded_DeleteTrain(inttrain_id);

                    if (intTrainCount > 0)

                    {

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

                        {

                            intDSum++;

                            int intcar_id = Convert.ToInt32(((DataRowView)dgCompartment.Items[i]).Row["car_id"]);

                            int intCarCount = myClient.UserControl_Loaded_DeleteCar(intcar_id);

                            if (intCarCount > 0)

                            {

                                for (int j = 0; j < dgSeat.Items.Count; j++)

                                {

                                    intDSum++;

                                    int intcarseat_id = Convert.ToInt32(((DataRowView)dgSeat.Items[j]).Row["seat_id"]);

                                    int intCarSeatCount = myClient.UserControl_Loaded_DeleteCarSeat(intcarseat_id);

                                }

                            }

                        }

                    }

                    if (intDSum == dgCompartment.Items.Count)

                    {

                        MessageBox.Show("删除车厢成功!", "系统提示", MessageBoxButton.OKCancel, MessageBoxImage.Information);

                    }

                }

                GetTable();//刷新表格数据

 

            }

            catch (Exception)

            {

 

                throw;

            }

        }

课上练习《火车售票维护系统 WPF版—— 车辆管理》