版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年新型農(nóng)機(jī)具銷售與租賃一體化服務(wù)合同4篇
- 2025年度復(fù)古風(fēng)格面磚采購及翻新合同4篇
- 2025年度個(gè)人婚姻家庭事務(wù)委托合同模板4篇
- 二零二五版苗木種植基地生態(tài)修復(fù)與保護(hù)合同4篇
- 2025年綠色能源廢電池回收承包合作協(xié)議3篇
- 2025年度智慧城市建設(shè)項(xiàng)目承包合同范本3篇
- 2025年度電子元器件精密打磨加工承包協(xié)議3篇
- 2025年度櫥柜智能化改造升級(jí)合同范文集4篇
- 二零二五年度離婚后子女撫養(yǎng)權(quán)爭議解決與監(jiān)護(hù)協(xié)議3篇
- 二零二四全新草牧場農(nóng)業(yè)國際合作與交流合同3篇
- 新人教版五年級(jí)小學(xué)數(shù)學(xué)全冊奧數(shù)(含答案)
- 風(fēng)電場升壓站培訓(xùn)課件
- 收納盒注塑模具設(shè)計(jì)(論文-任務(wù)書-開題報(bào)告-圖紙)
- 博弈論全套課件
- CONSORT2010流程圖(FlowDiagram)【模板】文檔
- 腦電信號(hào)處理與特征提取
- 高中數(shù)學(xué)知識(shí)點(diǎn)全總結(jié)(電子版)
- GB/T 10322.7-2004鐵礦石粒度分布的篩分測定
- 2023新譯林版新教材高中英語必修一重點(diǎn)詞組歸納總結(jié)
- 蘇教版四年級(jí)數(shù)學(xué)下冊第3單元第2課時(shí)“常見的數(shù)量關(guān)系”教案
- 基于協(xié)同過濾算法的電影推薦系統(tǒng)設(shè)計(jì)
評(píng)論
0/150
提交評(píng)論