《C#程序設計及基于工作過程的項目開發(fā)》課件第6章_第1頁
《C#程序設計及基于工作過程的項目開發(fā)》課件第6章_第2頁
《C#程序設計及基于工作過程的項目開發(fā)》課件第6章_第3頁
《C#程序設計及基于工作過程的項目開發(fā)》課件第6章_第4頁
《C#程序設計及基于工作過程的項目開發(fā)》課件第6章_第5頁
已閱讀5頁,還剩46頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

項目三學生管理系統(tǒng)Ⅲ.1任務一:“學生管理系統(tǒng)”各窗體設計Ⅲ.2任務二:“登錄窗體”數(shù)據庫連接操作的功能實現(xiàn)Ⅲ.3任務三:“學生管理系統(tǒng)”增刪改查操作的實現(xiàn)

Ⅲ.1任務一:“學生管理系統(tǒng)”各窗體設計

Ⅲ.1.1功能描述

在本項目中,將通過使用工具箱中的文本框、按鈕等控件,實現(xiàn)“學生管理系統(tǒng)”的登錄界面和學生管理界面。Ⅲ.1.2設計步驟

(1)打開MicrosoftVisualStudio2005,單擊“創(chuàng)建:項目”,項目類型選擇VisualC#,模板選擇Windows應用程序,項目名稱輸入StudentSys,位置根據自己需要選擇設定,單擊“確定”按鈕。

(2)單擊Form1,在解決資源管理器中將Form1.cs改為LoginForm.cs,在屬性窗口修改Text屬性為“學生管理系統(tǒng)”,修改StartPosition屬性為CenterScreen。

(3)在工具箱中拖放兩個Label控件、兩個TextBox控件和兩個按鈕控件到LoginForm中,在屬性窗口中修改Name和Text屬性,如表Ⅲ.1所示,完成的界面如圖Ⅲ.1所示。圖Ⅲ.1登錄界面

(4)在StudentSys項目中添加一個Windows窗體,命名為StudentForm。在該窗體中添加如表Ⅲ.2所示的控件。用戶可根據個人習慣設定窗體背景顏色或者背景圖片。圖Ⅲ.2學生管理窗體界面步驟解析:

(2)將窗體的StartPosition屬性設置為CenterScreen,其目的是使得窗體運行后能顯示在屏幕的中間位置。

(3)各控件的命名是根據?.NET2005控件命名規(guī)范命名的,如表Ⅲ.3所示。

(4)使用Panel控件,其目的是為了更好地進行布局,便于控件的統(tǒng)一管理;使用DataGridView是要進行數(shù)據的復雜綁定,將數(shù)據庫中的數(shù)據顯示出來;而使用TextBox進行數(shù)據的簡單綁定,是為了定位記錄。

Ⅲ.2任務二:“登錄窗體”數(shù)據庫

連接操作的功能實現(xiàn)

Ⅲ.2.1功能描述

在“登錄窗體”中,通過合法的用戶名和密碼登錄數(shù)據庫。

Ⅲ.2.2功能步驟及代碼解析

(1)在SqlServer2000中,創(chuàng)建名為“學生管理系統(tǒng)”的數(shù)據庫,其中包含兩張數(shù)據表:UserTable和StudentTable。UserTable用于記錄合法的用戶名和密碼,StudentTable用于記錄學生記錄。具體字段設置如表Ⅲ.4所示。

(2)在LoginForm.cs文件中引入命名空間System.Data.SqlClient。

(3)在按鈕btnEnter中添加如下代碼:

1SqlConnectioncon=newSqlConnection(“DataSource=.;InitialCatalog=學生管理系統(tǒng);Integrated

Security=True”);

2stringsqlStr=string.Format("selectcount(*)fromUserTablewhereUserName='{0}'andPassword

='{1}'",txtUserName.Text,txtPassword.Text);3SqlCommandcom=newSqlCommand(sqlStr,con);

4con.Open();

5intresult=(int)com.ExecuteScalar();

6con.Close();

7if(result==1)

8{

9StuFormstuForm=newStuForm();

10stuForm.Show();

11}

12else

13{

14 MessageBox.Show("用戶名或者密碼錯誤!請重新輸入!");

15}代碼分析:

1創(chuàng)建一個SqlConnection連接對象con,用于建立與Sql數(shù)據庫的連接。括號中的參數(shù)為字符串類型,代表連接字符串的內容。其中,DataSource代表服務器名;Initial

Catalog代表數(shù)據庫名;IntegratedSecurity代表驗證模式。

2創(chuàng)建一個字符串類型的變量,代表用于數(shù)據查詢的T-SQL語句,其中{0}和{1}分別代表用戶名和密碼的占位符。

3創(chuàng)建一個SqlCommand命令對象com,用于執(zhí)行對數(shù)據庫數(shù)據的操作。需要設定兩個參數(shù)值。在此例中,com對象用于查詢數(shù)據庫數(shù)據,其中sqlStr代表查詢語句,

con代表所建立的連接。

4打開數(shù)據庫連接。

5調用com對象的ExecuteScalar()方法執(zhí)行查詢操作,返回一個對象類型,并將其轉換為整型數(shù)據,賦值給result。

6關閉數(shù)據庫連接。

7對result的值進行判斷:如果等于1,則代表UserTable表中有符合條件的數(shù)據,

即存在合法的用戶名和密碼;如果不等于1,則代表用戶名和密碼錯誤。

8如果存在合法的用戶名和密碼,則實例化StuForm,并調用Show()方法將其顯示出來。Ⅲ.2.3知識庫

1.?SqlConnection

SqlConnection類用于連接SQL數(shù)據庫。connectionString屬性用于設定連接字符串,其中DataSource為數(shù)據庫名,InitialCatalog為連接數(shù)據庫名,IntegratedSecurity為驗證模式。SqlConnection的Open()方法用于打開數(shù)據庫連接,Close()方法用于關閉數(shù)據庫連接。

2.?SqlCommand

SqlCommand類用于執(zhí)行對數(shù)據庫數(shù)據的增刪改查操作。其中,CommandText屬性為要執(zhí)行命令的T-SQL語句或者存儲過程的名字;ExecuteNonQuery()方法用于執(zhí)行增加、刪除、修改的操作;ExecuteReader()方法用于執(zhí)行查詢操作,查詢返回結果為SqlDataReader類型的對象;ExecuteScalar()方法也用于執(zhí)行查詢操作,其與ExecuteReader()的區(qū)別在于返回類型為object類型對象。Ⅲ.3任務三:“學生管理系統(tǒng)”增刪改查操作的實現(xiàn)

Ⅲ.3.1功能描述

在學生管理窗體中,實現(xiàn)新增記錄、刪除記錄、修改記錄以及根據不同的條件查詢數(shù)據。Ⅲ.3.2設計步驟及代碼解析

(1)在“工具”菜單中,選擇“選擇工具箱項”。在“.NetFramework組件”選項卡中,選擇SqlConnection、SqlDataAdapter。

(2)在左側工具箱中,出現(xiàn)SqlConnection、SqlDataAdapter控件。拖動SqlConnection控件到StuForm中,設置其Name屬性為StuCon,并設置其ConnectionString屬性。點擊右側的展開按鈕,彈出“添加連接”窗體,如圖Ⅲ.3所示。圖Ⅲ.3“添加連接”窗體

(3)在“添加連接”窗體中,設定所要連接的服務器、數(shù)據庫以及驗證模式。設定服務器名為localhost,數(shù)據庫名為“學生管理系統(tǒng)”,登錄服務器模式為“使用Windows身份驗證”。設定完成后,測試連接,如出現(xiàn)成功提示窗體(如圖Ⅲ.4所示),則代表連接成功。圖Ⅲ.4測試成功提示窗體

(4)拖動SqlDataAdapter控件(數(shù)據適配器)到窗體中,會出現(xiàn)“數(shù)據適配器配置向導”窗體,如圖Ⅲ.5所示。選擇所需要的連接,在本例中為“學生管理系統(tǒng).dbo”,單擊“下一步”按鈕,出現(xiàn)如圖Ⅲ.6所示的窗體,用于生成對數(shù)據庫數(shù)據進行操作的T-SQL語句。單擊“查詢分析器”按鈕,出現(xiàn)如圖Ⅲ.7所示的窗體,選擇StudentTable(注意,一個數(shù)據適配器對應一張數(shù)據表),并單擊“添加”按鈕,出現(xiàn)如圖Ⅲ.8所示的窗體,用于選擇數(shù)據表中所需的數(shù)據列。單擊“下一步”按鈕,進入“向導結果”窗體,如圖Ⅲ.9所示。需要注意的是,這里提示數(shù)據適配器配置成功,并有5條詳細信息,只有當Select、Update、Insert、Delete語句以及表映射生成成功時,才能正確地對數(shù)據庫數(shù)據進行操作。將此控件改名為StuDataAdapter。圖Ⅲ.5數(shù)據適配器配置向導——選擇您的數(shù)據連接圖Ⅲ.6數(shù)據適配器配置向導——生成SQL語句圖Ⅲ.7查詢生成器——添加表圖Ⅲ.8查詢生成器主界面圖Ⅲ.9數(shù)據適配器向導——向導結果

(5)選定sqlDataAdapter1,單擊右鍵,選擇“生成數(shù)據集”,出現(xiàn)“生成數(shù)據集”窗體,如圖Ⅲ.10所示。這里由StuDataAdapter數(shù)據適配器生成一個數(shù)據集StuDS,數(shù)據集用來臨時存儲數(shù)據庫內的數(shù)據。圖Ⅲ.10“生成數(shù)據集”窗體

(6)進行復雜數(shù)據綁定。設置dgView的DataSource屬性為StuDS1,DataMember屬性為StudentTable。設置Columns屬性,點擊右側的展開按鈕,修改每列的HeaderText屬性,如StuNo列的HeaderText修改為“學號”,如圖Ⅲ.11所示。圖Ⅲ.11“編輯列”窗體

(7)在StuForm_Load(objectsender,EventArgse)方法中,寫入如下代碼,用于將數(shù)據庫中的內容導入界面的stuDS1數(shù)據集:

this.StuDataAdapter.Fill(stuDS1);

(8)進行簡單數(shù)據綁定。將“學生信息”組中的文本框控件與數(shù)據集內的數(shù)據進行綁定,如將txtStuNo的DataBindings中的Text屬性設置為stuDS1中的studentTable中StuNo列。

(9)在btnAdd按鈕單擊事件中添加相應代碼,實現(xiàn)記錄的增加。

1privatevoidbtnAdd_Click(objectsender,EventArgse)

2{

3try

4{

5DataRowdr=stuDS1.Tables["studentTable"].NewRow();

6dr["StuNo"]=tbStuNo.Text.Trim();

7dr["StuName"]=tbStuName.Text.Trim();

8dr["Born"]=tbBirthday.Text.Trim();

9dr["ClassNo"]=tbClassNo.Text.Trim();

10dr["Telphone"]=tbTelphone.Text.Trim();

11dr["Time"]=tbInTime.Text.Trim();

12dr["Address"]=tbAddress.Text.Trim();

13stuDS1.Tables["studentTable"].Rows.Add(dr);

14MessageBox.Show("添加成功!");

15

16}

17catch(Exceptionex)

18{

19MessageBox.Show(ex.Message);

20}

21}代碼分析:

1添加按鈕的單擊事件。

3進行異常處理。

5在stuDS1數(shù)據集中的studentTable數(shù)據表中,創(chuàng)建一個新的空行dr。

6將tbStuNo文本框的內容賦值給數(shù)據行dr的“StuNo”列。

7將tbStuName文本框的內容賦值給數(shù)據行dr的“StuName”列。

8將tbBirthday文本框的內容賦值給數(shù)據行dr的“Born”列。

9將tbClassNo文本框的內容賦值給數(shù)據行dr的“ClassNo”列。

10將tbTelphone文本框的內容賦值給數(shù)據行dr的“Telphone”列。

11將tbInTime文本框的內容賦值給數(shù)據行dr的“Time”列。

12將tbAddress文本框的內容賦值給數(shù)據行dr的“Address”列。

13將數(shù)據行dr添加到stuDS1數(shù)據集中的studentTable數(shù)據表中。

14提示“添加成功!”。

17~19如果出現(xiàn)異常,則提示異常信息。

(10)在btnDelete按鈕單擊事件中添加相應的代碼,實現(xiàn)記錄的刪除。

1privatevoidbtnDelete_Click(objectsender,EventArgse)

2{

3try{

4DataRowdr=stuDS1.Tables["studentTable"].Rows[this.dgView.CurrentRow.Index];

5dr.Delete();

6MessageBox.Show("刪除成功!");

7}

8catch(Exceptionex)

9{

10MessageBox.Show(ex.Message);

11}

12}代碼分析:

1刪除按鈕的單擊事件。

4創(chuàng)建一個DataRow變量dr,將dgView中選中的數(shù)據行賦值給dr。

5調用Delete()方法,將dr從數(shù)據表中刪除。

6提示刪除成功。

(11)在btnUpdate按鈕單擊事件中添加相應的代碼,實現(xiàn)數(shù)據集中記錄的更新。

1privatevoidbtnUpdate_Click(objectsender,EventArgse)

2{

3try

4{

5DataRowdr=stuDS1.Tables["studentTable"].Rows[this.dgView.CurrentRow.Index];

6dr.BeginEdit();

7dr["StuNo"]=txtStuNo.Text.Trim();

8dr["StuName"]=txtStuName.Text.Trim();

9dr["Born"]=txtBirthday.Text.Trim();

10dr["ClassNo"]=txtClassNo.Text.Trim();

11dr["Telphone"]=txtTelphone.Text.Trim();

12dr["Time"]=txtInTime.Text.Trim();

13dr["Address"]=txtAddress.Text.Trim();

14dr.EndEdit();

15MessageBox.Show("修改成功!");

16}

17catch(Exceptionex)

18{

19MessageBox.Show(ex.Message);

20}

21}代碼分析:

1 修改按鈕的單擊事件。

5 創(chuàng)建一個DataRow變量dr,將dgView中選中的數(shù)據行賦值給dr。

6 開始編輯數(shù)據行。

7 將txtStuNo文本框的內容賦值給數(shù)據行dr的“StuNo”列。

8 將txtStuName文本框的內容賦值給數(shù)據行dr的“StuName”列。

9 將txtBirthday文本框的內容賦值給數(shù)據行dr的“Born”列。

10將txtClassNo文本框的內容賦值給數(shù)據行dr的“ClassNo”列。

11將txtTelphone文本框的內容賦值給數(shù)據行dr的“Telphone”列。

12將txtInTime文本框的內容賦值給數(shù)據行dr的“Time”列。

13將txtAddress文本框的內容賦值給數(shù)據行dr的“Address”列。

14結束數(shù)據行的編輯。

(12)在下拉菜單的選擇事件中添加如下代碼,以確定查詢條件的字段(需先聲明一個string類型的變量columnName)。

1switch(cboSearch.SelectedItem.ToString())

2{

3case"學號":columnName="StuNo";break;

4case"姓名":columnName="StuName";break;

5case"生日":columnName="Born";break;

6case"班級":columnName="ClassNo";break;

7case"地址":columnName="Address";break;

8case"電話號碼":columnName="Telphone";break;

9case"入學時間":columnName="Time";break;

10default:columnName="";break;

11}代碼分析:

1采用switch結構,以下拉框被選擇的項作為表達式。

3如果所選擇的項為“學號”,那么將StudentTable表中的“StuNo”字段名賦值給columnName。

4如果所選擇的項為“姓名”,那么將StudentTable表中的“StuName”字段名賦值給columnName。

5如果所選擇的項為“生日”,那么將StudentTable表中的“Born”字段名賦值給columnName。

6如果所選擇的項為“班級”,那么將StudentTable表中的“ClassNo”字段名賦值給columnName。

7如果所選擇的項為“地址”,那么將StudentTable表中的“Address”字段名賦值給columnName。

8如果所選擇的項為“電話號碼”,那么將StudentTable表中的“Telphone”字段名賦值給columnName。

9如果所選擇的項為“入學時間”,那么將StudentTable表中的“Time”字段名賦值給columnName。

10其它情況,columnName的值取空值。

(13)在查詢按鈕單擊事件中添加如下代碼,實現(xiàn)數(shù)據的模糊查詢。

1privatevoidbtn

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論