开发工具与关键技术:Visual Studio
撰写时间:2019年06月08日
新增和修改都是差不多的,MVC是,WPF也是
1.在主页面中先把所有字段和按钮设计出来(按钮用Button控件;搜索用TextBlock控件,搜索的文本框用TextBox控件,在搜索框中还可以弹出工具提示对象,用ToolTip属性;表格用DataGridTextColumn。如下图)
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();
整个页面设计如下:
5.选择一条数据,点击修改,进行数据回填(在修改的过程中,员工的账号不能为空或者不能与之前的一样,重复;密码不能为空;所选的姓名必须是之前有账号的)
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中调用数据(需要修改多少个字段,就要声明多少个参数)
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.绑定下拉框和页面控件数据回填
11.修改保存按钮
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();
}