今天小小的總結一下最近的小程序中的問題


              嘿嘿,每一天持續自由學習中,但是真的是感覺這樣的一周過去啦,沒有學習什么,只是自己在學習一些自己想要學習的,雖然也好啦,但是感覺很不舒服,沒有按照課程的內容走,真的希望這周快點過去的啦,今天來學校只是坐在這里把前幾天的小程序中的錯誤改改啦,然后想一想,既然完成啦,就寫一寫這個小程序中學到的東西啦,東西不多,但是希望自己下一次在做程序時間能夠有更深的印象啦,能夠不再詢問的啦,嘿嘿,好啦,下面就總結對於我這樣的初學者需要注意的問題啦。

        一.密碼加密問題

        我們在存儲注冊用戶的密碼時間一般在數據庫中不想被看到,那么我們可以使得密碼加密啦,簡單的說下使用MD5加密的方法:

            string pwd = this.textBox1.Text;            
            MD5 md5 = new MD5CryptoServiceProvider();   //創建MD5的加密對象
            byte[] bytes = Encoding.Default.GetBytes(pwd);//把要進行MD5加密的字符串轉換成字節數組
            byte[] bytess = md5.ComputeHash(bytes);
            pwd = BitConverter.ToString(bytess).Replace("-", "");

             

        在這里我們在文本框中獲取密碼,然后實例化一個類MD5,然后是我們需要對編碼方式處理一下的啦,以不至於出現亂碼啦,還有最好在后面添加轉換為小寫的方法(ToLower()),我們使用MD5中的ComputeHash方法可以使密碼加密的啦,具體就是這樣的思想吧,嘿嘿。

             二.頁面可以輪回加載

              

   

             在這里我剛開始時間,每次刪除一條注冊信息,還要重新啟動,感覺好麻煩,就在想應該怎樣才能刪除一條信息,然后重新返回一個新的值,就是不再顯示刪除信息的信息那,只是想到啦讓頁面加載啦,但是沒有成功,最后問老師啦,原來就這樣啦,和跳轉頁面一樣的啦,只是重新展示一下頁面啦,然后把當前現實的頁面隱藏就可以啦,嘿嘿,這是自己沒有想到的啦。現在知道啦,以后就可以讓頁面有一個連貫性啦,嘿嘿。

          三.鼠標的簡單事件

          

        private void txtname_MouseEnter_1(object sender, EventArgs e)
        {
            this.txtname.Text = string.Empty;
            this.txtname.ForeColor = Color.Black;
        }

        private void textBox1_MouseEnter_1(object sender, EventArgs e)
        {
            this.textBox1.Text = string.Empty;
            this.textBox1.PasswordChar = '*';
            this.textBox1.ForeColor = Color.Black;
        }

 

                 在這里我們可以設置文本框的屬性啦,當然可以在窗體的空間上面直接修改屬性默認值為用戶名,密碼即可,然后改變一下字體顏色,現在在后台頁面上面實現其改變其屬性啦,首先當我們鼠標進入時間我們可以讓字體隱藏啦,然后輸入我們要輸入的信息啦,在這里我們就需要對文本框中的鼠標進入事件進行寫一個方法啦,當鼠標進入時間我們使文本框為空,另外還需要改變我們輸入的信息的字體的顏色,當然密碼依然如粗,只不過我們需要對密碼現實的樣式設置一下,可以設置為*顯示啦,嘿嘿,我們剛開始對於這些設計都是沒有注意的啦,嘿嘿,以后再寫登錄時間可以添加的啦。

          四.使用dateTimePicker1控件計算年齡的方法

            string birthday = this.dateTimePicker1.Text;
            int age = DateTime.Now.Year - DateTime.Parse(birthday).Year;  //通過生日求出年紀
            bool sex = this.radioButton1.Checked ? true : false;

 

                上面的三個問題都是在登錄界面需要注意的啦,那么這個是在注冊頁面啦,我們在注冊信息時間有時間注冊的是我們的出生年月日啦,而在數據庫中我們存儲的是我們的年齡啦,嘿嘿,這時間的我們就需要處理一下注冊用戶的出生年月日啦,就是通過上面的兩行代碼即可實現我們存儲的年齡啦,首先通過時間控件獲取出生年月日,然后獲取當前時間的年以及出生年月日的年,上面的年齡即可實現啦,嘿嘿;而我們獲取性別時間可以使用一個三元表達式,這樣更加方便啦,嘿嘿,把這個寫出來只是想加深下印象啦。

          五.Id的獲取

       string one =this.listBox1.SelectedItem.ToString();   //獲取ListBox中的其中一項,然后把它裝變為字符串
       string[] two = one.Split(',');           //字符串的處理可以使用方法Split分割,然后用數組存儲啦
       int id = int.Parse(two[0]);           //獲取第一項即可

             

  

                 在這里其實就是我們注冊的信息在ListBox中顯示,如果我們需要修改哪一項內容,那么就需要選中該條信息啦,在這里我們需要把選中的信息顯示在更改頁面上面的啦,注冊時間可以直接注冊,可更改信息時間注冊用戶的信息是顯示的,在這里我們可以通過獲取Id然后查詢該用戶的所有信息,然后顯示在更該頁面上面,這里我們就需要注意應該怎樣獲取id的啦,像上面圖片所示,我們需要獲取Id,可以使用分割的啦,剛開始使用的是SubString(0,0)方法截取id,那時間只考慮啦id是以為數字的,沒注意,當id兩位數字、時間獲取的id都是1,於是考慮使用Split(',')分割的啦,嘿嘿,這個下次在做程序啦需要注意考慮一定要全面的啦,嘿嘿,不能再這樣只是感覺把程序做出來沒有錯就可以啦。

          六.構造函數在實際中的使用

         Update u = new Update(id,username,pwd,address,phone,sex,age);
                u.Show();
                this.Hide();
        int id = 0;
        public Update(int id,string username,string pwd,string address,string phone ,bool sex,int age)
        {
            InitializeComponent();
            this.txtUserName.Text = username;
            this.txtpwd.Text = pwd;
            this.txtaddress.Text = address;
            this.txtphone.Text = phone;
            sex = this.radioButton1.Checked ? true : false;
            string birthday = this.dateTimePicker1.Text;
            //age = DateTime.Now.Year - DateTime.Parse(birthday).Year;
            //string birthday = this.dateTimePicker1.Text;
            this.id = id;
        }

 

          嘿嘿,其實一直在控制台上面寫構造函數的傳參,而在頁面間的傳值能夠想起來使用這個感覺還好啦,那時間學構造函數知道是傳參使用的,現在突然使用到啦,感覺學的基礎知識也用到啦,似乎很是高興的啦,感覺基礎其實也是很重要的啦,在這里只要是加深下印象的啦,下次窗體間的傳參我會使用起來更加方便啦,很容易想到的吧。

          七.在ListBox中顯示每一項的信息

         DataTable dt=bll.GetAllUserInfo();
         foreach (DataRow item in dt.Rows)
         {
              string format = string.Format("{0},{1},{2},{3},{4},{5},{6}",item[0],item[1],item[2],item[3],item[4],item[5],item[6]);
              this.listBox1.Items.Add(format);
         }

 

              在這里突然想起來就是這里還出錯啦那,那時間剛開始寫SqlHelp這個類,對返回一個DataTable的類型的值還不是很熟悉,習慣了返回值類型是bool,string,in等,甚至一般都是void的,所以剛開始真的不知道我們可以直接在DAL層返回一個DataTable類型的值,BLL依然如此,所以在UI頁面上面加載頁面啦也沒有顯示信息啦,那時間就是知道不對,但是在返回值類型上面局限性太強,所以錯啦也不知道怎樣解決的啦,現在經過練習好啦很多,發現也不在局限於那幾種類型啦,甚至有時間返回的是一個集合等,當然,返回類型不對,所以在遍歷出來的關鍵字in不知道該怎樣寫的啦,總是為空的啦,然后現在知道類型啦,使用起來韓式蠻好的,嘿嘿。

              這是做的一個小小的增刪改查的小程序的啦,上面的有的是出現的問題的啦,有的是感覺總結一下需要加深下印象,下次再遇到同樣的問題啦可以直接解決的啦,嘿嘿,好啦,今天就總結到這里啦,感覺今天的總結收獲是蠻大的啦,嘿嘿。


免責聲明!

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



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