版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Delicious_Life/article/details/84931981
我也明白这个标题很绕嘴,但是我就是说不明白
解释标题:
功能实现
我们先来分析一下,既然能选择查询就说明卡号和姓名是绑定的,我这里的卡号和姓名是在一个表里的两个字段。(多表可以用视图联起来查)那既然是在一个表里,那我们应用的无非就是单表查询,问题在于如何显示。请参考笔者代码,希望能帮你获取答案。
实体层
namespace Entity
{
/// <summary>
/// 用户实体类
/// </summary>
public class UserEntity
{
//用户ID
private int userID;
public int UserID
{
get { return userID; }
set { userID = value; }
}
//密码
private string password;
public string Password
{
get { return password; }
set { password = value; }
}
//用户名
private string userName;
public string UserName
{
get { return userName; }
set { userName = value; }
}
//用户级别
private string level;
public string Level
{
get { return level; }
set { level = value; }
}
}
}
接口层
public interface ICheck
{
//从User表里查询用户ID
List<Entity.UserEntity> SelectAllID(Entity.UserEntity user);
}
数据传输层
public class CheckDAL :IDAL.ICheck
{
SQLHelper sqlhelper = new SQLHelper();
/// <summary>
/// 根据level查所有UserID
/// </summary>
/// <param name="user"></param>
/// <returns></returns>
public List<Entity.UserEntity> SelectAllID(Entity.UserEntity user)
{
SqlParameter[] sqlparams = { new SqlParameter("@level", "操作员") };
string sql = @"select * from T_User where level=@level";
DataTable table = sqlhelper.ExecuteQuery(sql, sqlparams, CommandType.Text);
//将Datatable类型转换为list泛型
ConvertHelper ct = new ConvertHelper();
List<Entity.UserEntity> List = new List<Entity.UserEntity>();
List = ct.ConvertTomodel<Entity.UserEntity>(table);
return List;
}
工厂层
string StrDB = System.Configuration.ConfigurationManager.AppSettings["DB"]; //接收来自配置文件的数据
/// <summary>
/// 结账
/// </summary>
/// <returns></returns>
public IDAL.ICheck Check()
{
string ClassName = StrDB + "." + "CheckDAL"; //DAL层的类名
return (IDAL.ICheck)Assembly.Load(StrDB).CreateInstance(ClassName); //反射+工厂的应用
}
逻辑层
public class CheckBLL //结账
{
/// <summary>
/// 根据level查所有UserID
/// </summary>
/// <param name="user"></param>
/// <returns></returns>
public List<Entity.UserEntity> SelectAllID(Entity.UserEntity user)
{
Factory.AdministratorFactory fact = new Factory.AdministratorFactory();
IDAL.ICheck idal = fact.Check();
return idal.SelectAllID(user);
}
外观层
public class CheckFacade //结账
{
/// <summary>
/// 根据level查所有UserID
/// </summary>
/// <param name="user"></param>
/// <returns></returns>
public List<Entity.UserEntity> SelectAllID(Entity.UserEntity user)
{
return new BLL.CheckBLL().SelectAllID(user);
}
显示层
//将操作员姓名加入到下拉菜单
private void FrmCheck_Load(object sender, EventArgs e)
{
Facade.CheckFacade facade = new Facade.CheckFacade();
Entity.UserEntity user = new Entity.UserEntity();
List<Entity.UserEntity> list = facade.SelectAllID(user);
for (int i = 0; i < list.Count; i++)
{
cmbUserID.Items.Add(list[i].UserID);
}
}
/// <summary>
/// 获得用户ID后,给姓名赋值
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void cmbUserID_SelectedIndexChanged(object sender, EventArgs e)
{
Facade.CheckFacade facade = new Facade.CheckFacade();
Entity.UserEntity user = new Entity.UserEntity();
List<Entity.UserEntity> list = facade.SelectAllID(user);
for (int i = 0; i < list.Count; i++)
{
if (Convert.ToInt32(cmbUserID.Text) == list[i].UserID)
{
txtUserName.Text = Convert.ToString(list[i].UserName);
}
}
this.cancelcard();//退卡信息写入表格
this.recharge();//充值信息写入表格
this.register();//注册信息写入表格
this.show();//汇总显示
}
本篇博客针对性较强,主要针对七层开发框架。如果读者乍看不太懂,不妨照着敲敲,未涉及到较复杂的问题,但愿你的问题可以迎刃而解~