WPF_修改数据

                                       WPF_修改数据

在这里做一个功能,修改。在当下的这个Dome中,有两个端,客户端和服务端,而现在做的功能是修改,

首先是先把存储过程写好,这里有两个存储过程,一个是下拉框的查询,另一个是修改保存员工账号信息的,写好存储过程后,接下来就是写服务,服务当中的[OperationContract]是操作契约,在写服务时需写。一般服务的格式都是一样的,先1、实例化对象数组;2、定义传递参数,以及传递参数的类型(传递过来的参数必须和数据库的参数保持一致);3、获取执行的存储过程名称,然后返回值。写好服务后需要执行;如需配置请看上一篇发的新增里有写到配置,因为这里的修改和新增的服务是写在同一个服务当中,所以不需要配置,只需要写好服务,执行,然后到客户端那边更新服务就行了。服务这边写好后,就到客户端这边了。

WPF_修改数据_第1张图片

 

 //查询已有账号的员工信息(下拉框)

[OperationContract]

public DataSet Loaded_UpdateSelectStaff()

{

//实例化对象数组(序列化参数)

SqlParameter[] mySqlParameters =

{

//定义传递参数,以及传递参数的类型

new SqlParameter("@type",SqlDbType.NChar)

};

mySqlParameters[0].Value = "Loaded_UpdateSelectStaff";//获取执行的存储过程名称

DataSet ds = myDAL.QueryDataSet("UC_StaffAccountManage", mySqlParameters);

return ds;

}

//修改账号信息

[OperationContract]

public int Click_UpdateStaffAccountManage(int staffID, string strAccounts, string strPassword, bool bleffective, string strNote,int operator_id)

{

SqlParameter[] mySqlParameters =

{

new SqlParameter("@type",SqlDbType.NChar),

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

new SqlParameter("@operator_accounts",SqlDbType.NChar),

new SqlParameter("@operator_password",SqlDbType.NChar),

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

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

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

};

mySqlParameters[0].Value = "Click_UpdateStaffAccountManage";

mySqlParameters[1].Value = staffID;

mySqlParameters[2].Value = strAccounts;

mySqlParameters[3].Value = strPassword;

mySqlParameters[4].Value = bleffective;

mySqlParameters[5].Value = strNote;

mySqlParameters[6].Value = operator_id;

int intcount = myDAL.UpdateData("UC_StaffAccountManage", mySqlParameters);

return intcount;

}

写完服务,就到客户端这里,更新服务,找到你所引用进来的服务,然后点击右键,选择更新服务引用就可以了。而且在服务那写完后,必须先执行,在到客户端这边。界面的搭建窗口代码有点多,所以就不写出来了。以下的就是通过修改按钮的点击事件把窗口弹出。

<Button x:Name="btn_Update" Content="修改" Width="50" Height="30" VerticalAlignment="Stretch" Margin="4" Style="{StaticResource ToolBarButton}" Click="btn_Update_Click"/>

WPF_修改数据_第2张图片

以下就是弹出修改窗口的修改数据过程,先实例化服务命名空间,然后就可以使用了,在页面加载事件中,把下拉框绑定好,然后回填页面控件数据,做完这些就到保存操作了,以下代码中有注释

WPF_修改数据_第3张图片

保存的点击事件:

private void btn_Save_Click(object sender, RoutedEventArgs e)

{

    try

    {

if (cbo_Name.SelectedValue.ToString() != "" && txt_Account.Text.Trim() != "" && pw_Password.Password.Trim() != "")//判断页面数据

{ //2、获取页面控件数据

int staffID = Convert.ToInt32(cbo_Name.SelectedValue);

string strAccounts = txt_Account.Text.Trim();

string strPassword = pw_Password.Password.Trim();

bool bleffective = (bool)chk_Effect.IsChecked;

string strNote = txt_Note.Text.Trim();

int intOperatorId = Convert.ToInt32(DRV.Row["operator_id"]);//操作ID

int intcount = myClient.Click_UpdateStaffAccountManage(staffID, strAccounts, strPassword, bleffective, strNote, intOperatorId);//3、执行修改

if (intcount > 0)//4、提示

{

MessageBoxResult dr = MessageBox.Show("账号修改成功!", "系统提示", MessageBoxButton.OKCancel, MessageBoxImage.Asterisk);

        if (dr == MessageBoxResult.OK)

        {

           this.Close();

        }

     }

     else if (intcount == -1)

    {

MessageBox.Show("账号重复,不能修改!", "系统提示", MessageBoxButton.OKCancel, MessageBoxImage.Exclamation);

     }

  }

 else

 {

MessageBox.Show("请把页面数据填写完整!", "系统提示", MessageBoxButton.OK,

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

 }

}

catch (Exception)

{

throw;

}

}

你可能感兴趣的:(WPF_修改数据)