C# 機房重構——修改密碼(查詢(傳值)—更新)
經過一天的戰鬥,終於解決了密碼修改的問題,主要就是卡在了傳值的問題上,當你看到這篇部落格的時候,你會深有同感,現在就讓我給大家來說一說如何來修改密碼。
密碼修改只要分為兩大功能,一是判斷自己原來的密碼是否輸入正確,二是將自己的新密碼寫到庫裡面,這兩個功能需要根據使用者的ID,可是使用者的ID我們該從哪裡獲取呢?該怎麼辦? 我們先來看一下修改密碼窗體的介面。
我們如何獲取驗證原密碼會否正確,這就需要我們去獲取資料庫裡面的原密碼,這就需要我們根據使用者的ID去查詢,可是ID從哪裡來的呢?我們知道只有登入的時候才會涉及的使用者的ID,可是如何才能在不同窗體之間傳值呢?這裡我們用到了Static,
Static:
指定在宣告一個或多個區域性變數的過程終止後,這些已宣告的區域性變數繼續存在並保留其最新值。通常,過程終止後,此過程中的區域性變數將立即消失。靜態變數可繼續存在,並保留其最新值。您的程式碼下次呼叫此過程時,此變數將不會重新初始化,仍然儲存已賦給它的最新值。靜態變數在定義它的類或模組的生存期內繼續存在。
通過上面的講述我們可以在登入窗體對使用者ID靜態宣告以後,在修改密碼窗體裡面直接進行呼叫,這樣我們就可以在密碼窗體裡面通過使用者的ID,去查詢資料庫裡面的原密碼是否正確,當然正確以後,我們才可以進行密碼的更新。
一、靜態變數的傳值:
登陸窗體(UI)
更改密碼窗體直接呼叫ID
這樣的兩句程式碼就可以將登入窗體的ID值傳到修改密碼窗體,然後通過ID查詢資料表中的密碼是否正確。
具體的程式碼段展示
UI層
BLL層
DAL層
關於密碼的修改就這樣結束了,關於傳值的問題我們還需要不斷的進一步學習,登入窗體的時候用到了Out的傳值,當然修改密碼窗體也可以使用,但是此時就需要將UI層的控制元件的資訊傳送到BLL層進行判斷,不符合各層之間的呼叫關係,所以我們用到了Static,關於Static的學習我將會以部落格的形式總結出來,希望小夥伴們持續觀看我的部落格,謝謝!歡迎討論交流!