WPF_新增数据

                                            WPF_新增数据

在这里做一个功能,新增。在当下的这个Dome中,有两个端,客户端和服务端,在新增数据之前,第一步先是在数据库中写好存储过程,然后在新增界面中姓名是下拉选项的,所以要先写一个下拉框查询信息,这里写的是未匹配账号的员工信息,再来就是新增员工账号信息了,在这个存储过程中做了个判断,exists用于检查子查询是否至少会返回一行数据,该子查询实际上并不返回任何数据,而是返回值true,指定一个子查询,检测行的存在。、

WPF_新增数据_第1张图片WPF_新增数据_第2张图片

写好存储过程,第二步就是,写服务。[OperationContract]是操作契约,在写服务时需写。一般服务的格式都是一样的,先1、实例化对象数组;2、定义传递参数,以及传递参数的类型(传递过来的参数必须和数据库的参数保持一致);3、获取执行的存储过程名称,然后返回值。写好服务后需要执行;执行的结果是以下左边的图的结果就是成功的;接下来就是去配置服务,在点击编辑WCF配置,打开配置界面,点击新建服务,点开后点击浏览按钮,打开浏览界面时,点击向上一级的按钮,然后点击BLL->bin->Bebug->BLL.dll->找到你所需的服务,点击确定,回到新建服务界面,复制服务类型,点击下一步->下一步->下一步->下一步->下一步->到终结点地址这时,留空点击下一步->是->完成;完成后服务那就多了个服务BLL.WD_LoginWindow,点击BLL.WD_LoginWindow,给第一格填上BLL;点开终结点那里给name那粘贴刚刚复制的服务类型;然后点开高级->宿主环境的最后一个,点击新建,在第一个格那粘贴刚刚复制的服务类型在后面加上.svc,在第二个格那直接粘贴复制到的服务类型。复制一下一格的填写内容BLL.WD_LoginWindow.svc,点击确定。配置完后关闭页面,关闭页面时,需点击保存;要查看是否成功,执行服务端,然后在网址后加上BLL.WD_LoginWindow.svc;如显示下面的第三张图的结果,就是配置成功。

然后复制浏览器上的网址,到客户端添加服务引用会用到。

//查询未匹配账号的员工信息(下拉框)

[OperationContract]

public DataSet Loaded_SelectStaff()

{

SqlParameter[] mySqlParameter ={

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

};

mySqlParameter[0].Value = "Loaded_SelectStaff";

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

return ds;

}

//新增账号信息

[OperationContract]

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

{

SqlParameter[] mySqlParameter =

{

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),

};

//给对象赋值

mySqlParameter[0].Value = "Click_InsertStaffAccountManage";

mySqlParameter[1].Value = staffID;

mySqlParameter[2].Value = strAccounts;

mySqlParameter[3].Value = strPassword;

mySqlParameter[4].Value = bleffective;

mySqlParameter[5].Value = strNote;

int count = myDAL.UpdateData("UC_StaffAccountManage", mySqlParameter);

return count;

}

WPF_新增数据_第3张图片WPF_新增数据_第4张图片

WPF_新增数据_第5张图片

服务配置好后,就到客户端这边添加服务的应用,在添加服务引用界面地址那粘贴刚刚复制的网址。点击转到的按钮,看服务那是否有服务显示,如果没有就是在服务端那边没配置好,若有就修改一下命名空间点击确定就把服务应用进来了,在客户端这边就可以用了。如要打开新增界面需要通过新增按钮来打开新增页面。然后一个新增按钮的点击事件。这里页面的搭建就不显示出来了,直接就是通过事件来触发的。

<Button x:Name="btn_Insert" ToolBar.OverflowMode="Never" Content="新增" Width="50" Height="30" Margin="4" Style="{StaticResource ToolBarButton}" Click="btn_Insert_Click"/>

//新增按钮

private void btn_Insert_Click(object sender, RoutedEventArgs e)

{

WD_InsertStaffAccountManage myInsert = new WD_InsertStaffAccountManage();

myInsert.ShowDialog();

//刷新

SelectdgAccountManage();

}

新增界面的代码:

WPF_新增数据_第6张图片

 

//新增保存

private void btn_Save_Click(object sender, RoutedEventArgs e)

{

try

{

//1、判断页面数据是否为空

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();

//3、执行新增

int intcount = myClient.Click_InsertStaffAccountManage(staffID, strAccounts, strPassword, bleffective, strNote);

//4、提示

if (intcount > 0)

{

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_新增数据)