《C#程序設(shè)計(jì)及基于工作過程的項(xiàng)目開發(fā)》課件第8章_第1頁
《C#程序設(shè)計(jì)及基于工作過程的項(xiàng)目開發(fā)》課件第8章_第2頁
《C#程序設(shè)計(jì)及基于工作過程的項(xiàng)目開發(fā)》課件第8章_第3頁
《C#程序設(shè)計(jì)及基于工作過程的項(xiàng)目開發(fā)》課件第8章_第4頁
《C#程序設(shè)計(jì)及基于工作過程的項(xiàng)目開發(fā)》課件第8章_第5頁
已閱讀5頁,還剩136頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

項(xiàng)目五三層架構(gòu)重構(gòu)考試管理系統(tǒng)Ⅴ.1任務(wù)一:實(shí)體層MySchoolModels的設(shè)計(jì)Ⅴ.2任務(wù)二:配置文件的設(shè)置Ⅴ.3任務(wù)三:數(shù)據(jù)訪問層接口的設(shè)計(jì)Ⅴ.4任務(wù)四:數(shù)據(jù)訪問層的設(shè)計(jì)Ⅴ.5任務(wù)五:聯(lián)機(jī)工廠的設(shè)計(jì)Ⅴ.6任務(wù)六:業(yè)務(wù)邏輯層的設(shè)計(jì)Ⅴ.1任務(wù)一:實(shí)體層MySchoolModels的設(shè)計(jì)

Ⅴ.1.1功能描述

在解決方案中,創(chuàng)建MySchoolModels項(xiàng)目,并在此項(xiàng)目中創(chuàng)建Admin類、Class類、Grade類和Student類,實(shí)現(xiàn)面向?qū)ο缶幊?。?1.2設(shè)計(jì)步驟及代碼解析

(1)打開MicrosoftVisualStudio2005,創(chuàng)建一個(gè)Windows窗體應(yīng)用程序,將其改名為MySchool,再創(chuàng)建一個(gè)類庫,項(xiàng)目名稱輸入MySchoolModels,位置根據(jù)自己需要選擇設(shè)定,單擊“確定”按鈕。

(2)單擊Class1.cs,將其重命名為Admin.cs。在Admin.cs中添加三個(gè)屬性。具體代碼和分析如下:

1

publicclassAdmin

2{

3

privateintid;

4

privatestringloginId=String.Empty;

5privatestringloginPwd=String.Empty;

6publicintId

7{

8get{returnid;}

9}

10

11

publicstringLoginId

12

{

13

get{returnloginId;}

14set{loginId=value;}

15}

16

17publicstringLoginPwd

18{

19get{returnloginPwd;}

20set{loginPwd=value;}

21}

22}代碼分析:

6~9 屬性ID。

11~15登錄名屬性。

17~21登錄密碼屬性。

(3)在解決方案管理器中,點(diǎn)擊MySchoolModels項(xiàng)目,右擊,選擇添加新建項(xiàng)。在模版中選擇類,將類名更改為Class.cs。具體代碼和分析如下:

1publicclassClass

2

{

3

protectedintclassId;

4

protectedstringname=String.Empty;

5

protectedintgradeID;

6

7

publicintClassId

8

{

9

get{returnclassId;}

10

}

11

12

publicstringName

13

{

14

get{returnname;}

15

set{name=value;}

16

}

17

18

publicintGradeID

19

{

20

get{returngradeID;}

21

set{gradeID=value;}

22

}

23}代碼分析:

7~10 班級(jí)編號(hào)屬性。

12~16班級(jí)名屬性。

18~22年級(jí)編號(hào)屬性。

(4)在MySchoolModels項(xiàng)目中,繼續(xù)添加Grade類和Student類。具體代碼和分析如下:

1

publicclassGrade

2

{

3

protectedintid;

4

protectedstringname=String.Empty;

5

publicintId

6

{

7

get{returnid;}

8

}

9

10

publicstringName

11

{

12

get{returnname;}

13

set{name=value;}

14

}

15

}

16

publicclassStudent

17

{

18

protectedintid;

19

protectedstringloginId=String.Empty;

20

protectedstringlingPwd=String.Empty;

21

protectedintuserStateId;

22

protectedintclassID;

23 protectedstringstudentNO=String.Empty;

24

protectedstringstudentname=String.Empty;

25 protectedstringsex=String.Empty;

26 protectedstringstudentIDNO=String.Empty;

27 protectedstringphone=String.Empty;

28 protectedstringaddress=String.Empty;

29

30

publicintId

31

{

32

get{returnid;}

33

}

34

35

publicstringLoginId

36

{

37

get{returnloginId;}

38

set{loginId=value;}

39

}

40

41

publicstringLingPwd

42

{

43

get{returnlingPwd;}

44

set{lingPwd=value;}

45

}

46

47

publicintUserStateId

48

{

49

get{returnuserStateId;}

50

set{userStateId=value;}

51

}

52

53

publicintClassID

54

{

55

get{returnclassID;}

56

set{classID=value;}

57

}

58

59

publicstringStudentNO

60

{

61

get{returnstudentNO;}

62

set{studentNO=value;}

63

}

64

65

publicstringStudentName

66

{

67

get{returnstudentname;}

68

set{studentname=value;}

69

}

70

71

publicstringSex

72

{

73

get{returnsex;}

74

set{sex=value;}

75

}

76

77

publicstringStudentIDNO

78

{

79

get{returnstudentIDNO;}

80

set{studentIDNO=value;}

81

}

82

publicstringPhone

83

{

84

get{returnphone;}

85

set{phone=value;}

86

}

87

88

publicstringAddress

89

{

90

get{returnaddress;}

91

set{address=value;}

92 }

93}代碼分析:

5~8年級(jí)編號(hào)屬性。

10~14年級(jí)名屬性。

30~33學(xué)生Id屬性。

35~39登錄Id屬性。

41~45登錄密碼屬性。

47~51用戶狀態(tài)Id屬性。

53~57班級(jí)Id屬性。

59~63學(xué)生學(xué)號(hào)屬性。

65~69學(xué)生姓名屬性。

71~75學(xué)生性別屬性。

77~81身份證屬性。

82~85聯(lián)系電話屬性。

88~92家庭住址屬性。Ⅴ.1.3知識(shí)庫

1.?Grade類

Grade類用于封裝Grade表中的各個(gè)字段,將其轉(zhuǎn)換為對(duì)應(yīng)屬性。

2.?Class類

Class類用于封裝Class表中的各個(gè)字段,將其轉(zhuǎn)換為對(duì)應(yīng)屬性。

3.?Admin類

Admin類用于封裝Admin表中的各個(gè)字段,將其轉(zhuǎn)換為對(duì)應(yīng)屬性。

4.?Student類

Student類用于封裝Student表中的各個(gè)字段,將其轉(zhuǎn)換為對(duì)應(yīng)屬性。 Ⅴ.2任務(wù)二:配置文件的設(shè)置

Ⅴ.2.1功能描述

在配置文件中設(shè)置連接字符串以及數(shù)據(jù)庫類型。Ⅴ.2.2設(shè)計(jì)步驟

(1)在MySchool項(xiàng)目中點(diǎn)擊app.config文件,在該文件中添加connectionStrings節(jié)點(diǎn),在此節(jié)點(diǎn)中設(shè)置連接字符串。具體代碼如下:

<connectionStrings>

<addname="DataBaseOwner"connectionString="dbo"/>

<addname="MySchoolConnectionString"connectionString="Data

Source=.;InitialCatalog=MySchool;IntegratedSecurity=True"

providerName="System.Data.SqlClient"/>

</connectionStrings>

(2)在配置文件中再添加appSettings節(jié)點(diǎn),在此節(jié)點(diǎn)中設(shè)置數(shù)據(jù)庫類型。具體代碼如下:

<appSettings>

<addkey="FactoryType"value="Sql"/>

</appSettings>Ⅴ.3任務(wù)三:數(shù)據(jù)訪問層接口的設(shè)計(jì)

Ⅴ.3.1功能描述

在解決方案中創(chuàng)建類庫MySchoolIDAL,添加IAdminService、IClassService、IGradeService和IStudentService四個(gè)接口,實(shí)現(xiàn)多態(tài)的編程。

Ⅴ.3.2設(shè)計(jì)步驟

(1)在解決方案中添加一個(gè)類庫項(xiàng)目MySchoolIDAL,右擊此項(xiàng)目,添加新建項(xiàng),選擇“接口”模板。將interface1.cs改名為IAdminService.cs。在接口IAdminService中定義如下方法,此方法用于根據(jù)登錄ID獲得密碼:

stringGetAdminLoginPwdByLoginID(stringloginID);

(2)在MySchoolIDAL項(xiàng)目中添加接口IClassService,并在此接口中定義如下兩個(gè)方法,分別用于根據(jù)班級(jí)名獲得班級(jí)ID和根據(jù)年級(jí)ID獲得班級(jí)集合:

stringGetClassIDByClassName(stringclassName);

ArrayListGetClassByGradeID(intgradeID);

(3)在MySchoolIDAL項(xiàng)目中添加接口IGradeService,在此接口中定義如下兩個(gè)方法,分別用于獲得所有的年級(jí)和根據(jù)年級(jí)名獲得年級(jí)ID:

List<Grade>GetAllGrades();

intGetGradeByGradeName(stringgradeName);

(4)在MySchoolIDAL項(xiàng)目中添加接口IStudentService,在此接口中定義如下方法:

intAddStudent(StudentobjStudent);

//添加新學(xué)員

voidDeleteStudent(stringloginID); //根據(jù)登錄ID刪除學(xué)員

voidModifyStudent(StudentobjStudent);//修改學(xué)生對(duì)象

StudentGetStudentInfoByLoginID(stringloginID);

//根據(jù)登錄ID獲得學(xué)員信息

List<Student>GetStudentLoginPwdByLoginID(stringloginID);

//根據(jù)登錄ID獲得學(xué)員的登錄密碼

IList<Student>GetAllStudents(); //獲得所有的學(xué)員對(duì)象集合

intGetStudentIDByLoginID(stringloginID);//根據(jù)登錄ID獲得學(xué)員IDⅤ.3.3知識(shí)庫

1.?IAdminService接口

IAdminService接口抽象了GetAdminLoginPwdByLoginID(stringloginID)方法,定義此方法是為了實(shí)現(xiàn)根據(jù)登錄ID獲得管理員登錄密碼,其具體實(shí)現(xiàn)由實(shí)現(xiàn)該接口的類來完成。

2.?IClassService接口

IClassService接口抽象了GetClassIDByClassName(stringclassName)和GetClassByGradeID

(intGradeID)方法,定義這兩個(gè)方法是為了實(shí)現(xiàn)根據(jù)班級(jí)名獲得班級(jí)ID和根據(jù)年級(jí)ID獲得班級(jí)集合,其具體實(shí)現(xiàn)由實(shí)現(xiàn)該接口的類來完成。

3.IGradeService接口

IGradeService接口抽象了GetAllGrades()和GetGradeByGradeName(stringgradeName)方法,這兩個(gè)方法的主要功能是實(shí)現(xiàn)獲得所有年級(jí)和根據(jù)年級(jí)名獲得年級(jí)ID,其具體實(shí)現(xiàn)由實(shí)現(xiàn)該接口的類來完成。

4.?IStudentService接口

IStudentService接口抽象了7個(gè)方法,分別用于增加、刪除、修改等操作,其具體實(shí)現(xiàn)由實(shí)現(xiàn)該接口的類來完成。

Ⅴ.4任務(wù)四:數(shù)據(jù)訪問層的設(shè)計(jì)

Ⅴ.4.1功能描述

在解決方案中創(chuàng)建類庫MySchoolDAL,用于集成對(duì)數(shù)據(jù)庫數(shù)據(jù)的操作。

Ⅴ.4.2設(shè)計(jì)步驟及代碼解析

(1)在項(xiàng)目MySchoolDAL中創(chuàng)建一個(gè)類AdminService,用于執(zhí)行對(duì)數(shù)據(jù)庫表Admin的操作。首先使類AdminService實(shí)現(xiàn)接口IAdminService。具體代碼與分析如下:

1

publicclassAdminService:IAdminService

2

{

3

//從配置文件中讀取數(shù)據(jù)庫連接字符串

4

privatereadonlystringconnString=

ConfigurationManager.ConnectionStrings["MySchoolConnectionString"].ToString();

5

privatereadonlystringdboOwner=

ConfigurationManager.ConnectionStrings["DataBaseOwner"].ToString();

6

///<summary>

7

///根據(jù)管理員登錄ID得到登錄密碼

8

///</summary>

9

///<paramname="loginID">登錄ID</param>

10

///<returns>密碼</returns>

11

publicstringGetAdminLoginPwdByLoginID(stringloginID)

12

{

13

stringpwd=string.Empty;

14

using(SqlConnectionconn=newSqlConnection(connString))

15

{

16

SqlCommandobjCommand=newSqlCommand(dboOwner+

".usp_SelectAdminByLoginID",conn);

17

objCommand.CommandType=CommandType.StoredProcedure;

18

objCommand.Parameters.Add("@LoginId",SqlDbType.NVarChar,50).Value=loginID;

19

conn.Open();

20

using(SqlDataReaderobjReader=objCommand.ExecuteReader

(CommandBehavior.CloseConnection))

21{

22

if(objReader.Read())

23

pwd=Convert.ToString(objReader["LoginPwd"]);

24

objReader.Dispose();

25

}

26

conn.Close();

27

conn.Dispose();

28

}

29returnpwd;

30}

31

}代碼分析:

14,20在第14行代碼和20行代碼中使用了using(①){②}的結(jié)構(gòu),是為了及時(shí)釋放對(duì)象所占用的資源,其中①的部分代表所要釋放的對(duì)象,②的部分代表對(duì)象的生存期,即在②部分的代碼執(zhí)行完后,①部分的對(duì)象允許被釋放。

16~17創(chuàng)建一個(gè)SqlCommand類型的對(duì)象,并設(shè)置其命令文本類型為存儲(chǔ)過程,其中usp_SelectAdminByLoginID為存儲(chǔ)過程的名字。存儲(chǔ)過程具體代碼如下:

ALTERPROCEDURE[dbo].[usp_SelectAdminByLoginID]

@LoginIdvarchar(50)

AS

SETNOCOUNTON

SETTRANSACTIONISOLATIONLEVELREADCOMMITTED

SELECT

[LoginPwd],

[LoginId],

[AdminName],

[Sex]

FROM

[dbo].[Admin]

WHERE

[LoginId]=@LoginId

(2)在項(xiàng)目MySchoolDAL中創(chuàng)建一個(gè)類GradeService,用于執(zhí)行對(duì)數(shù)據(jù)庫表Grade的操作。首先使類GradeService實(shí)現(xiàn)接口IGradeService。具體代碼與分析如下:

1

publicclassGradeService:IGradeService

2

{

3

//從配置文件中讀取數(shù)據(jù)庫連接字符串

4

privatereadonlystringconnString=ConfigurationManager.ConnectionStrings

["MySchoolConnectionString"].ToString();

5

privatereadonlystringdboOwner=ConfigurationManager.ConnectionStrings

["DataBaseOwner"].ToString();

6

///<summary>

7///得到所有年級(jí)集合

8///</summary>

9///<returns>年級(jí)集合</returns>

10publicList<Grade>GetAllGrades()

11{

12

List<Grade>GradeList=newList<Grade>();

13

14

using(SqlConnectionconn=newSqlConnection(connString))

15

{

16

SqlCommandobjCommand=newSqlCommand(dboOwner+".usp_SelectGradesAll",conn);

17

objCommand.CommandType=CommandType.StoredProcedure;

18

conn.Open();

19

using(SqlDataReaderobjReader=objCommand.ExecuteReader

(CommandBehavior.CloseConnection))

20

{

21

while(objReader.Read())

22

{

23

Gradegrade=newGrade();

24

grade.Name=Convert.ToString(objReader["GradeName"]);

25GradeList.Add(grade);

26}

27objReader.Close();

28objReader.Dispose();

29}

30conn.Close();

31conn.Dispose();

32}

33returnGradeList;

34}

35///<summary>

36

///通過年級(jí)名稱得到年級(jí)ID

37///</summary>

38

///<paramname="gradeName">年級(jí)名稱</param>

39

///<returns>年級(jí)ID</returns>

40

publicintGetGradeByGradeName(stringgradeName)

41{

42intnumber=0;

43

using(SqlConnectionconn=newSqlConnection(connString))

44

{

45SqlCommandobjCommand=newSqlCommand(dboOwner+".usp_SelectGradeByGradeName",conn);

46

objCommand.CommandType=CommandType.StoredProcedure;

47

objCommand.Parameters.Add("@GradeName",SqlDbType.NVarChar,50).Value=

gradeName;

48

conn.Open();

49

using(SqlDataReaderobjReader=objCommand.ExecuteReader

(CommandBehavior.CloseConnection))

50

{

51

if(objReader.Read())

52

number=Convert.ToInt32(objReader["GradeID"]);

53

objReader.Close();

54

objReader.Dispose();

55

}

56

conn.Close();

57conn.Dispose();

58}

59returnnumber;

60}

61

}代碼分析:

12 創(chuàng)建一個(gè)泛型集合,用于存儲(chǔ)查詢的年級(jí)集合。

16~17創(chuàng)建一個(gè)SqlCommand類型的對(duì)象,并設(shè)置其命令文本類型為存儲(chǔ)過程,其中usp_SelectGradesAll為存儲(chǔ)過程的名字。存儲(chǔ)過程具體代碼如下:

ALTERPROCEDURE[dbo].[usp_SelectGradesAll]

AS

SETNOCOUNTON

SETTRANSACTIONISOLATIONLEVELREADCOMMITTED

SELECT

[GradeID],

[GradeName]

FROM

[dbo].[Grade]

19~25執(zhí)行命令,循環(huán)讀出數(shù)據(jù)并且添加到泛型集合中。

42 創(chuàng)建一個(gè)int類型變量,用于存儲(chǔ)年級(jí)編號(hào)。

45~46創(chuàng)建一個(gè)SqlCommand類型的對(duì)象,并設(shè)置其命令文本類型為存儲(chǔ)過程,其中usp_SelectGradeByGradeName為存儲(chǔ)過程的名字。存儲(chǔ)過程具體代碼如下:

ALTERPROCEDURE[dbo].[usp_SelectGradeByGradeName]

@GradeNamenvarchar(50)

AS

SETNOCOUNTON

SETTRANSACTIONISOLATIONLEVELREADCOMMITTED

SELECT

[GradeID]

FROM

[dbo].[Grade]

WHERE

[GradeName]=@GradeName

(3)在MySchoolDAL中創(chuàng)建一個(gè)類ClassService實(shí)現(xiàn)接口IClassService,用于執(zhí)行對(duì)數(shù)據(jù)庫表Class的操作。

1

publicclassClassService:IClassService

2

{

3

//從配置文件中讀取數(shù)據(jù)庫連接字符串

4

privatereadonlystringconnString=ConfigurationManager.ConnectionStrings

["MySchoolConnectionString"].ToString();

5

privatereadonlystringdboOwner=ConfigurationManager.ConnectionStrings

["DataBaseOwner"].ToString();

6

///<summary>

7

///通過班級(jí)名稱得到班級(jí)ID

8

///</summary>

9

///<paramname="className">班級(jí)名稱</param>

10

///<returns>班級(jí)ID</returns>

11

publicstringGetClassIDByClassName(stringclassName)

12

{

13

stringnumber=string.Empty;

14

using(SqlConnectionconn=newSqlConnection(connString))

15

{

16SqlCommandobjCommand=newSqlCommand(dboOwner+

".usp_SelectClassIDByClassName",conn);

17

objCommand.CommandType=CommandType.StoredProcedure;

18

objCommand.Parameters.Add("@ClassName",SqlDbType.NVarChar,50).Value=

className;

19conn.Open();

20using(SqlDataReaderobjReader=objCommand.ExecuteReader

(CommandBehavior.CloseConnection))

21{

22if(objReader.Read())

23number=Convert.ToString(objReader["ClassID"]);

24objReader.Close();

25objReader.Dispose();

26

}

27

conn.Close();

28

conn.Dispose();

29

returnnumber;

30

}

31

}

32

///<summary>

33

///通過年級(jí)ID得到年級(jí)對(duì)應(yīng)的班級(jí)

34

///</summary>

35

///<paramname="gradeID">年級(jí)ID</param>

36

///<returns>班級(jí)集合</returns>

37

publicArrayListGetClassByGradeID(intgradeID)

38

{

39

ArrayListclassList=newArrayList();

40

using(SqlConnectionconn=newSqlConnection(connString))

41

{

42

SqlCommandobjCommand=newSqlCommand(dboOwner+".usp_SelectClassesByGradeID",conn);

43

objCommand.CommandType=CommandType.StoredProcedure;

44

objCommand.Parameters.Add("@GradeID",SqlDbType.Int).Value=gradeID;

45

conn.Open();

46

using(SqlDataReaderobjReader=objCommand.ExecuteReader

(CommandBehavior.CloseConnection))

47

{

48

while(objReader.Read())

49

classList.Add(objReader["ClassName"]);

50

objReader.Close();

51

objReader.Dispose();

52

}

53

conn.Close();

54

conn.Dispose();

55

}

56

returnclassList;

57}

58}代碼分析:

11 實(shí)現(xiàn)接口中定義的方法GetClassIDByClassName。

16 創(chuàng)建一個(gè)SqlCommand類型的對(duì)象,并設(shè)置其命令文本類型為存儲(chǔ)過程,其中usp_SelectClassIDByClassName為存儲(chǔ)過程的名字。

存儲(chǔ)過程具體代碼如下:

ALTERPROCEDURE[dbo].[usp_SelectClassIDByClassName]

@ClassNamenvarchar(50)

AS

SETNOCOUNTON

SETTRANSACTIONISOLATIONLEVELREADCOMMITTED

SELECT

[ClassID]

FROM

[dbo].[Class]

WHERE

ClassName=@ClassName

37 實(shí)現(xiàn)接口中定義的方法GetClassByGradeID(intGradeID)。

42~43創(chuàng)建一個(gè)SqlCommand類型的對(duì)象,并設(shè)置其命令文本類型為存儲(chǔ)過程,其中usp_SelectClassesByGradeID為存儲(chǔ)過程的名字。存儲(chǔ)過程具體代碼如下:

ALTERPROCEDURE[dbo].[usp_SelectClassesByGradeID]

@GradeIDint

AS

SETNOCOUNTON

SETTRANSACTIONISOLATIONLEVELREADCOMMITTED

SELECT

[ClassID],

[ClassName]

FROM

[dbo].[Class]

WHERE[GradeID]=@GradeID

(4)在MySchoolDAL中,創(chuàng)建一個(gè)類StudentService實(shí)現(xiàn)接口IStudentService,用于執(zhí)行對(duì)數(shù)據(jù)庫表Student的操作。具體代碼及分析如下:

1

publicclassStudentService:IStudentService

2

{

3#regionPrivateMembers

4

//從配置文件中讀取數(shù)據(jù)庫連接字符串

5

privatereadonlystringconnString=ConfigurationManager.ConnectionStrings

["MySchoolConnectionString"].ToString();

6

privatereadonlystringdboOwner=ConfigurationManager.ConnectionStrings

["DataBaseOwner"].ToString();

7

#endregion

8

9#regionPublicMethods

10

///<summary>

11

///創(chuàng)建學(xué)員帳戶

12

///</summary>

13

///<paramname="objStudent">學(xué)員實(shí)體對(duì)象</param>

14

///<returns>生成帳戶記錄的ID</returns>

15publicintAddSutdent(StudentobjStudent)

16

{

17

intnumber;

18

using(SqlConnectionconn=newSqlConnection(connString))

19

{

20

SqlCommandobjCommand=newSqlCommand(dboOwner+".usp_InsertPartStudentInfo",conn);

21objCommand.CommandType=CommandType.StoredProcedure;

22

23

objCommand.Parameters.Add("@LoginID",SqlDbType.NVarChar,50).Value=

objStudent.LoginId;

24

objCommand.Parameters.Add("@LoginPwd",SqlDbType.NVarChar,50).Value=objStudent.LingPwd;

25objCommand.Parameters.Add("@UserStateId",SqlDbType.Int).Value=objStudent.UserStateId;

26

objCommand.Parameters.Add("@ClassID",SqlDbType.Int).Value=objStudent.ClassID;

27objCommand.Parameters.Add("@StudentNO",SqlDbType.NVarChar,255).Value=objStudent.StudentNO;

28objCommand.Parameters.Add("@StudentName",SqlDbType.NVarChar,255).Value=objStudent.StudentName;

29objCommand.Parameters.Add("@Sex",SqlDbType.NVarChar,255).Value=objStudent.Sex;

30conn.Open();

31

number=Convert.ToInt32(objCommand.ExecuteScalar());

32

conn.Close();

33

conn.Dispose();

34

}

35

returnnumber;

36}

37

///<summary>

38

///根據(jù)學(xué)員ID刪除賬戶信息

39

///</summary>

40

///<paramname="loginID"></param>

41publicvoidDeleteStudent(stringloginID)

42

{

43

intstudentID=GetStudentIDByLoginID(loginID);

44

using(SqlConnectionconn=newSqlConnection(connString))

45

{

46

SqlCommandobjCommand=newSqlCommand(dboOwner+".usp_DeleteStudent",conn);

47objCommand.CommandType=CommandType.StoredProcedure;

48

objCommand.Parameters.Add("@StudentID",SqlDbType.Int).Value=studentID;

49conn.Open();

50

objCommand.ExecuteNonQuery();

51

conn.Close();

52

conn.Dispose();

53

}

54}

55

///<summary>

56///根據(jù)登錄ID得到學(xué)員信息

57///</summary>

58

///<paramname="loginID">登錄ID</param>

59

///<returns>學(xué)員信息實(shí)體</returns>

60

publicStudentGetStudentInfoByLoginID(stringloginID)

61{

62

StudentstudentInfo=newStudent();

63

using(SqlConnectionconn=newSqlConnection(connString))

64

{

65SqlCommandobjCommand=newSqlCommand(dboOwner+

".usp_SelectStudentInfoByLoginID",conn);

66objCommand.CommandType=CommandType.StoredProcedure;

67objCommand.Parameters.Add("@LoginID",SqlDbType.NVarChar,50).Value=loginID;

68conn.Open();

69

using(SqlDataReaderobjReader=objCommand.ExecuteReader

(CommandBehavior.CloseConnection))

70{

71

if(objReader.Read())

72

{

73studentInfo.LoginId=Convert.ToString(objReader["LoginId"]);

74studentInfo.StudentNO=Convert.ToString(objReader["StudentNO"]);

75studentInfo.StudentName=Convert.ToString(objReader["StudentName"]);

76studentInfo.Sex=Convert.ToString(objReader["Sex"]);

77

studentInfo.StudentIDNO=Convert.ToString(objReader["StudentIDNO"]);

78

studentInfo.Phone=Convert.ToString(objReader["Phone"]);

79}

80}

81conn.Close();

82conn.Dispose();

83}

84returnstudentInfo;

85}

86

///<summary>

87

///根據(jù)學(xué)員登錄ID得到學(xué)員ID

88

///</summary>

89///<paramname="loginID">登錄ID</param>

90

///<returns>學(xué)員ID</returns>

91

publicintGetStudentIDByLoginID(stringloginID)

92

{

93

intstudentID=0;

94using(SqlConnectionconn=newSqlConnection(connString))

95

{

96SqlCommandobjCommand=newSqlCommand(dboOwner+".usp_SelectStudentIDByLoginID",conn);

97

objCommand.CommandType=CommandType.StoredProcedure;

98objCommand.Parameters.Add("@LoginId",SqlDbType.NVarChar,50).Value=loginID;

99

conn.Open();

100using(SqlDataReaderobjReader=objCommand.ExecuteReader

(CommandBehavior.CloseConnection))

101{

102

if(objReader.Read())

103

{

104

studentID=Convert.ToInt32(objReader["StudentID"]);

105

}

106

objReader.Dispose();

107

}

107

conn.Close();

109

conn.Dispose();

110

}

111

returnstudentID;

112}

113///<summary>

114///根據(jù)登錄ID得到學(xué)員登錄密碼和用戶狀態(tài)ID

115

///</summary>

116

///<paramname="loginID">登錄ID</param>

117

///<returns>密碼和狀態(tài)ID的集合</returns>

118publicList<Student>GetStudentLoginPwdByLoginID(stringloginID)

119{

120

List<Student>studentlist=newList<Student>();

121

stringpwd=string.Empty;

122

using(SqlConnectionconn=newSqlConnection(connString))

123

{

124SqlCommandobjCommand=newSqlCommand(dboOwner+

".usp_SelectStudentByLoginID",conn);

125

objCommand.CommandType=CommandType.StoredProcedure;

126

objCommand.Parameters.Add("@LoginId",SqlDbType.NVarChar,50).Value=

loginID;

127conn.Open();

128

using(SqlDataReaderobjReader=objCommand.ExecuteReader

(CommandBehavior.CloseConnection))

129{

130

if(objReader.Read())

131

{

132

Studentstudent=newStudent();

133

student.LingPwd=Convert.ToString(objReader["LoginPwd"]);

134

student.UserStateId=Convert.ToInt32(objReader["UserStateId"]);

135

studentlist.Add(student);

136

}

137

objReader.Dispose();

138

}

139

conn.Close();

140

conn.Dispose();

141}

142

143returnstudentlist;

144}

145

///<summary>

146

///更新學(xué)員信息

147

///</summary>

148///<paramname="objStudent">學(xué)員實(shí)體對(duì)象</param>

149publicvoidModifyStudent(StudentobjStudent)

150

{

151

using(SqlConnectionconn=newSqlConnection(connString))

152

{

153SqlCommandobjCommand=newSqlCommand(dboOwner+".usp_UpdateStudentBaseInfo",conn);

154objCommand.CommandType=CommandType.StoredProcedure;

155objCommand.Parameters.Add("@LoginID",SqlDbType.NVarChar,50).Value=objStudent.LoginId;

156objCommand.Parameters.Add("@StudentNO",SqlDbType.NVarChar,255).Value=objStudent.StudentNO;

157objCommand.Parameters.Add("@StudentName",SqlDbType.NVarChar,255).Value=objStudent.StudentName;

158

objCommand.Parameters.Add(“@Sex”,SqlDbType.NVarChar,255).Value=objStudent.Sex;

159objCommand.Parameters.Add(“@StudentIDNO”,SqlDbType.NVarChar,255).Value=objStudent.StudentIDNO;

160objCommand.Parameters.Add(“@Phone”,SqlDbType.NVarChar,255).Value=objStudent.Phone;

161conn.Open();

162objCommand.ExecuteNonQuery();

163conn.Close();

164conn.Dispose();

165}

166

167}

168

///<summary>

169

///返回所有學(xué)員信息集合

170

///</summary>

171///<returns>學(xué)員信息集合</returns>

172publicIList<Student>GetAllStudents()

173{

174IList<Student>objStudentList=newList<Student>();

175

using(SqlConnectionconn=newSqlConnection(connString))

176

{

177

SqlCommandobjCommand=newSqlCommand(dboOwner+

".usp_SelectStudentsAll",conn);

178

objCommand.

溫馨提示

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

評(píng)論

0/150

提交評(píng)論