1. 程式人生 > >C#如何在選擇下拉框選項的同時顯示對應資訊在窗體上

C#如何在選擇下拉框選項的同時顯示對應資訊在窗體上

我也明白這個標題很繞嘴,但是我就是說不明白

解釋標題:

 

 

功能實現 

我們先來分析一下,既然能選擇查詢就說明卡號和姓名是繫結的,我這裡的卡號和姓名是在一個表裡的兩個欄位。(多表可以用檢視聯起來查)那既然是在一個表裡,那我們應用的無非就是單表查詢,問題在於如何顯示。請參考筆者程式碼,希望能幫你獲取答案。

實體層

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();//彙總顯示
        }

 

本篇部落格針對性較強,主要針對七層開發框架。如果讀者乍看不太懂,不妨照著敲敲,未涉及到較複雜的問題,但願你的問題可以迎刃而解~