在数据库中查询出你要匹配的信息
IF(@type = 'Window_Loaded_Update')
BEGIN
SELECT staff_id, RTRIM(staff_name) AS name
FROM t_staff
WHERE staff_id IN (SELECT t_operators.staff_id FROM t_operators)
END
在服务端(DAL)中建立数据库连接,
Sqlserver数据库连接方式有多种,这里只介绍最常用的通过SqlConnection和Sqlserver数据库用户名和密码验证来进行操作数据库。
这里data source 是指数据库地址和端口号,需要注意的是地址和端口号之间是用","进行分隔的;initial catalog 是数据库名字 ;user id和pwd分别指用户名和密码。
数据库连接:
public string strConnect = @"Data Source=DESKTOP-R9LRKRS\SQL;Initial Catalog=TTS ;User ID=sa;Password=123";()
查询数据:
public DataTable QueryDataTable(String sql, SqlParameter[] param)
{
DataTable dt = new DataTable();
//数据库建立连接
using (SqlConnection conn = new SqlConnection(strConnect))
{
conn.Open();
SqlDataAdapter da = new SqlDataAdapter(sql, conn);
da.SelectCommand.CommandType = CommandType.StoredProcedure;
da.SelectCommand.Parameters.AddRange(param);
//数据库查询
da.Fill(dt);
conn.Close();
}
return dt;
}
在服务端(BLL)中获取客户端中的数据
实例化数据层,与DAL进行连接。
[OperationContract]:操作契约,每写一个方法都要写一个操作契约,
实例化个对象数组用来定义传递参数
获取执行的数据库中存储过程名称赋值给对象数组
声明个对象ds获取到数据然后返回ds。
//实例化数据层
DAL.DALMethod myDALMethod = new DAL.DALMethod();
[OperationContract]
public DataSet Window_Loaded()
{
//1.0实例化对象数组(序列化参数)
SqlParameter[] mySqlParameters = {
//定义传递参数,以及传递参数的类型
new SqlParameter("@type",SqlDbType.NChar),
};
mySqlParameters[0].Value = "Window_Loaded_Update";//获取执行的存储过程名称
DataSet ds = myDALMethod.QueryDataSet("UC_StaffAccountManage", mySqlParameters);
// 返回值
return ds;
}
客户端
实例化服务端(BLL)来获取该绑定下拉框数据的方法:
BLL.UC_StaffAccountManage.UC_StaffAccountManageClient myClient = new
BLL.UC_StaffAccountManage.UC_StaffAccountManageClient();
在客户端中绑定你要宣示的下拉框,找到你界面中下拉框的name值进行绑定(见下面代码)
private void Window_Loaded(object sender, RoutedEventArgs e)
{
#region 绑定下拉框
DataTable dt = myClient.Window_Loaded_USelectStaff().Tables[0];//获取数据
cbo_Name.ItemsSource = dt.DefaultView;//绑定数据源
cbo_Name.SelectedValuePath = "staff_id";//id选中值
cbo_Name.DisplayMemberPath = "name";//name显示值
#endregion
}