WPF 修改

开发工具与关键技术:Visual Studio 
撰写时间:2019年06月08日

新增和修改都是差不多的,MVC是,WPF也是

1.在主页面中先把所有字段和按钮设计出来(按钮用Button控件;搜索用TextBlock控件,搜索的文本框用TextBox控件,在搜索框中还可以弹出工具提示对象,用ToolTip属性;表格用DataGridTextColumn。如下图)
WPF 修改_第1张图片
2.查询数据(在SQL Server里用存储过程查询数据,需要把表格的所有字段都查出来)

SELECT    ROW_NUMBER() over(order by t_operators.operator_id) AS number,
           	     t_operators.operator_id, t_operators.staff_id, 
	             RTRIM(t_staff.staff_name) AS name, 
	             RTRIM(t_operators.operator_accounts) AS accounts, 
	             RTRIM(t_operators.operator_password) AS password, 
	             RTRIM(case WHEN t_operators.effective='true' THEN '有效' ELSE '无效' END) AS effective, 
	              RTRIM(t_operators.note) AS note
FROM     t_operators INNER JOIN
		       t_staff ON t_operators.staff_id = t_staff.staff_id

3.在服务端Service调用存储过程(在服务器Service中配置服务,定义操作契约,服务协议)

//实例化对象数组
   SqlParameter[] mySqlParameters =
   {
        //定义传递参数,以及传递参数的类型
        new SqlParameter("@type",SqlDbType.NChar),
   };
  mySqlParameters[0].Value = "UserControl_Loaded_SelectStaffAccountManage";
  DataSet ds = myDALMethod.QueryDataSet("UC_StaffAccountManage", mySqlParameters);
  //返回值
  return ds;

4.在客户端Client中引用服务(初始化表格和绑定数据)

//初始化表格
  PublicStaticMothd.SetDgStyle(dgAccountManage);
  //调用:绑定表格数据
  SelectdgAccountManage();

整个页面设计如下:
WPF 修改_第2张图片
5.选择一条数据,点击修改,进行数据回填(在修改的过程中,员工的账号不能为空或者不能与之前的一样,重复;密码不能为空;所选的姓名必须是之前有账号的)
WPF 修改_第3张图片
6.在数据库SQL Server查询匹配账号的员工信息(在新增的时候是查询未匹配员工账号的)

SELECT   staff_id, 
	     RTRIM(staff_name) AS name
FROM     t_staff
WHERE    staff_id IN(SELECT   t_operators.staff_id FROM t_operators )

7.在数据库SQL Server查询需要修改员工账号的信息(需要判断修改的账号是否是存在的)

IF exists(select 0 from t_operators where operator_accounts=@operator_accounts)
	begin
		RETURN
	end
ELSE
	begin
	     UPDATE t_operators
         SET staff_id=@staff_id,operator_accounts=@operator_accounts,	
         operator_password=@operator_password,effective=@effective,note=@note
WHERE operator_id=@operator_id

8.在服务端Service中调用数据(需要修改多少个字段,就要声明多少个参数)
WPF 修改_第4张图片
9.在Client客户端中跨页面传递数据(需要修改的主页面)

if ((DataRowView)dgAccountManage.CurrentItem != null)
     {
          //1数据回填(选中行数据)跨页面传递数据
          WD_UpdateStaffAccountManage myUpdate = new WD_UpdateStaffAccountManage((DataRowView)dgAccountManage.CurrentItem);
          myUpdate.ShowDialog();
          //2刷新表格数据
          SelectdgAccountManage();
     }

需要修改的页面

DataRowView DRV;
        public WD_UpdateStaffAccountManage( DataRowView drv)
        {
            InitializeComponent();
            //获取行数据
            DRV = drv;
        }

10.绑定下拉框和页面控件数据回填
WPF 修改_第5张图片
11.修改保存按钮
WPF 修改_第6张图片
12.重置按钮是把它们全部设为空值

cbo_Name.SelectedValue = 0;
 txt_Account.Text = string.Empty;
 txt_Note.Text = string.Empty;
 PB_Password.Password = string.Empty;
 chk_Effect.IsChecked = false;

13.在取消时,我们还要给提示,因为WPF不像MVC一样会保存记录,所以我们要提示取消之后将不会保留数据

 MessageBoxResult dr = MessageBox.Show("退出界面数据将不保留。", "系统提示", MessageBoxButton.OKCancel, MessageBoxImage.Information);//弹出确定对话框
 if(dr==MessageBoxResult.OK)//如果点了确定按钮
     {
          //关闭窗口
          this.Close();
      }

你可能感兴趣的:(WPF 修改)