登錄界面與SQL數(shù)據(jù)庫連接
“做任何一個項目,思路是最重要的,因為思路才是引導(dǎo)你慢慢走向成功的關(guān)鍵”這是我在這次學(xué)做登錄界面感受到的其中重要一點。另外一點就是“做項目時可以嘗試將可視化的一步步操作流程用代碼表示出來,因為一步步的可視化操作流程正是你的制作項目的思路”。 我這次做的登錄界面比較簡單,主要板塊就是“登錄的界面”和“SQL server數(shù)據(jù)庫中的表格”兩塊,而連接它們的橋梁就是“ADO.NET的應(yīng)用”,ADO.NET的使用也正是這個小項目的重中之重。以下我就側(cè)重這三個重要的應(yīng)用中來講述我做這個項目的整個過程。
第一個板塊就是登陸界面的制作,這個板塊比較好做,說白了就是拖控件。只要你有時間,有精力的話,你可以把你的界面制作的非常漂亮。在這里我盡量從簡,我主要是想說說如何實現(xiàn)基本功能。在你新建的一個項目中會彈出一個窗口,而在這個窗口中你只需要五個控件即可,分別是:兩個lable控件,兩個textBox控件,一個Button控件。分別將兩個lable控件文本設(shè)置為“用戶名”和“密碼”;兩個textBox控件文本設(shè)置為空,作為前面兩個lable的對應(yīng)輸入框;最后一個Button控件文本設(shè)置為“登錄”。這樣一個簡單的登錄界面就完成了。
第二個板塊就是用SQL語言在SQL server數(shù)據(jù)庫中建立一個表格,也就是你要登錄連接的對象。在這里我就先簡單的建立一個數(shù)據(jù)庫中的表格。首先新建一個數(shù)據(jù)庫命名為stu,再在stu中新建一個表格命名為connection,這些命名是可以隨意的,但是它們也是比較重要的,因為在寫代碼尋找這個表格時用的上。現(xiàn)在用代碼新建一個臨時使用的表connection,如下:
create table connection
(
ID int primary key,
Username Nvarchar(20) Not null,
Password Nvarchar(20) Not null,
)
這就是建立了一個三個列分別為ID、Username、Password的表格。
接下來向其中插入數(shù)據(jù),如下:
insert into connection values('145211','小琪','111111')
select * from connectioninsert into connection values('145212','小明','222222')
select * from connection
insert into connection values('145213','小玉','333333')
select * from connection
其中括號內(nèi)的為插入的數(shù)據(jù),這樣一個簡單的數(shù)據(jù)表格也就完成了。
前面兩個板塊已經(jīng)完成,接下來就是最后一個重要的應(yīng)用----ADO.NET,用它來實現(xiàn)界面與SQL server的連接。做這個連接之前,我們要有一個清晰地思路,而這個思路的來源就是我們自己平時操作這些過程的流程。比如,你已經(jīng)做好了一個登陸界面,你要與SQL server數(shù)據(jù)庫進(jìn)行連接,你會怎么做?1、你要先從界面的輸入框中取得數(shù)據(jù);2、你會先打開SQL server數(shù)據(jù)庫;3、你要進(jìn)行身份驗證,這樣你才能進(jìn)入SQL server數(shù)據(jù)庫;4、你會打開你新建的那個數(shù)據(jù)庫stu;5、你要打開stu數(shù)據(jù)庫中的新建的表格connection;6、然后將表中你要的數(shù)據(jù)提取出來;7、最后將你在界面里輸入的數(shù)據(jù)與從表格中提取的數(shù)據(jù)進(jìn)行驗證是否正確。你要做的就是這些可視化的操作流程,而電腦其實要做的也就是這些過程,我們要做的就是將這些可視化操作流程用代碼寫出來,這是一個重要的學(xué)習(xí)方法。
有了整體的思路,然后我們來實現(xiàn)Button控件發(fā)生的功能。首先,在代碼中加入using system.Data.SqlClient;接下來我們要做的就是將上面的一步步操作流程代碼化就行了。
1、從界面中的兩個輸入框中取得兩個數(shù)據(jù)“用戶名”和“密碼”:
string Username = this.textBox1.Text;
string Password=this.textBox2.Text;
2、打開SQL server數(shù)據(jù)庫并進(jìn)行身份驗證:
string num = ("Server=(local);Integrated Security=SSPI;database=stu")
3、找到數(shù)據(jù)庫stu并且找到其中的表格connection,用一條記錄作為連接橋梁:
SqlConnection connect = new SqlConnection(num); //建立一個數(shù)據(jù)庫連接對象connect
string sql = "select * from connection where Username='"+ Username + "' and Password='"+Password + "'";
4、SQL server數(shù)據(jù)庫打開并連接:
SqlCommand command = new SqlCommand(sql,connect); //建立一個新的SQL命令
connect.Open();
5、SQL server數(shù)據(jù)庫連接關(guān)閉:
connect.Close();
6、將你從界面輸入框中取得的兩個數(shù)據(jù)與數(shù)據(jù)庫中數(shù)據(jù)進(jìn)行驗證過程:
int num1 = Convert.ToInt32(command.ExecuteScalar())
if(num1>0)
{
MessageBox.Show("登入成功!");
}
else
{
MessageBox.Show("對不起,你輸入的賬號或者密碼錯誤!");
}
這些就是實現(xiàn)Button控件連接功能的所有代碼,接下來,你就可以直接去進(jìn)行調(diào)試應(yīng)用了。事實上這些代碼在步驟順序上與我們的實際可視化操作并不是完全一致,但也只是稍微的改變而已,所以在做許多項目時,還是可以嘗試用這種方法去實現(xiàn)。到這里這個登陸界面已經(jīng)基本完成了。
學(xué)習(xí)過程中的知識小結(jié):
1、斷點調(diào)試法:在你編寫代碼時,時常會出現(xiàn)代碼的錯誤導(dǎo)致無法正常運(yùn)行,所以有的時候你可以用斷點調(diào)試法,對重要的一條語句進(jìn)行斷點(方法:將鼠標(biāo)的光標(biāo)置于你選中的那條語句左邊界后單擊,之后這條語句會變成紅色),--->然后對該語句進(jìn)行調(diào)試,--->在彈出的登陸界面窗口中輸入“用戶名”和“密碼”后,--->連接.之后你便可以將鼠標(biāo)光標(biāo)分別置于對界面兩個輸入框進(jìn)行取數(shù)的那兩個語句上,若是語句正確的話,那么分別會顯示出你剛剛所輸入的數(shù)據(jù);若是語句錯誤的話,那么光標(biāo)置于該處位置無法顯示出剛剛你所輸入的數(shù)據(jù)。這樣你就可以有針對性的去查找錯誤語句。
2、在你拖拉lable和textBox控件時,其實代碼中會幫你自動生成幾條對應(yīng)的空間代碼,這些代碼你可以忽略掉,不用再其中添加任何東西。因為,每個控件對應(yīng)的代碼指的是這個控件發(fā)生的變化事件,需要填寫代碼去激活,然而這些控件并未發(fā)生什么事件,所以也不用填寫代碼去激活。并且你可以將其刪除,當(dāng)你刪除它們的時候,系統(tǒng)會自動報錯并生成一個代碼窗口,此時你只要雙擊對應(yīng)的錯誤提示,將光標(biāo)所停留的位置那條語句刪除即可。