C#如何在選擇下拉框選項的同時顯示對應資訊在窗體上
阿新 • • 發佈:2018-12-12
我也明白這個標題很繞嘴,但是我就是說不明白
解釋標題:
功能實現
我們先來分析一下,既然能選擇查詢就說明卡號和姓名是繫結的,我這裡的卡號和姓名是在一個表裡的兩個欄位。(多表可以用檢視聯起來查)那既然是在一個表裡,那我們應用的無非就是單表查詢,問題在於如何顯示。請參考筆者程式碼,希望能幫你獲取答案。
實體層
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
[email protected]"; 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();//彙總顯示
}
本篇部落格針對性較強,主要針對七層開發框架。如果讀者乍看不太懂,不妨照著敲敲,未涉及到較複雜的問題,但願你的問題可以迎刃而解~