C#登錄窗口(訪問數據庫)的制作,類文件的制作及使用


一、類文件的編寫及使用。
可以單獨建立一個類文件(使用記事本),然后包含在項目中,使用時加上該類的命名空間,就可以使用這個類了。

image

如何在一個項目里包含一個類文件?

1.在項目里新建一個文件夾;

2.將類文件放在這個文件夾里;

3.在vs界面的解決方案資源管理器里,點擊“顯示全部文件”按鈕,然后選中這些文件,右擊—>”包含在項目里”;

4.在項目的其他地方引用命名空間后,就可以使用這些類了。

二、登錄窗口的制作

我們可以借助一個類文件生成器(Code Smith),幫助我們制作需要的類,下面的是使用Code Smith連接數據庫的表后,根據模板生成的類。

image

點擊登陸

image

//點擊登陸按鈕
        private void button1_Click(object sender, EventArgs e)
        {

            string userName = textUser.Text;
            string PWD = textPWD.Text;
            //調用方法,訪問數據庫,核對數據
            LoginData data= new LoginDA().Select(userName ,PWD);
            //如果訪問到數據,彈出主窗口
            if (data != null)
            {
                Main f = new Main();
                f.Show();
            }
            else
            {
                MessageBox.Show("登錄失敗");
            }
           
        }

 

三、捕獲異常

這是一個類文件里的查詢數據方法,

把可能出現問題的步驟放在try里面,如果有異常(比如,連接數據庫出現網絡問題),進入catch,我們可以選擇拋出此異常或其他操作。finally里面是不受異常影響,總是執行的語句。

//根據輸入的用戶名、密碼訪問數據庫
        public LoginData Select(string userName,string PWD)
        {
            LoginData data = null;
            _Cmd.CommandText = "select * from login where userName = @userName and userPwd=@userPwd";
            _Cmd.Parameters.Clear();
            _Cmd.Parameters.AddWithValue("@userName", userName);
            _Cmd.Parameters.AddWithValue("@userPwd", PWD);

            try
            {
                _Conn.Open();
                SqlDataReader dr = _Cmd.ExecuteReader();
                while (dr.Read())
                {
                    data = new LoginData();
                    data.UserName = (String)dr["userName"];
                    data.UserPwd = (String)dr["userPwd"];
                    data.UserIdentity = (String)dr["userIdentity"];
                }
                dr.Close();
                dr.Dispose();
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                _Conn.Close();
                _Cmd.Dispose();
                _Conn.Dispose();
            }
            return data;
        }

下面是關閉數據庫服務后,調用上面方法的結果(拋出異常)

image

三、隱藏登錄窗口

if (data != null)
            {
                Main f = new Main();
                this.Visible = false;//設置登錄窗口不可見
                this.Owner = f;//設置為main窗口的子窗口,main窗口關后,登錄窗口也跟着關閉
                f.WindowState = FormWindowState.Maximized;//登錄后,主窗口最大化
                f.Show();
            }

四、在主窗口實現“歡迎您,xxx”

效果圖

image

代碼:

重寫Main窗口的構造函數

image

創建Main窗口時,將用戶名傳給構造函數

image


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM