《C#程序设计及基于工作过程的项目开发》课件第8章_第1页
《C#程序设计及基于工作过程的项目开发》课件第8章_第2页
《C#程序设计及基于工作过程的项目开发》课件第8章_第3页
《C#程序设计及基于工作过程的项目开发》课件第8章_第4页
《C#程序设计及基于工作过程的项目开发》课件第8章_第5页
已阅读5页,还剩136页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

项目五三层架构重构考试管理系统Ⅴ.1任务一:实体层MySchoolModels的设计Ⅴ.2任务二:配置文件的设置Ⅴ.3任务三:数据访问层接口的设计Ⅴ.4任务四:数据访问层的设计Ⅴ.5任务五:联机工厂的设计Ⅴ.6任务六:业务逻辑层的设计Ⅴ.1任务一:实体层MySchoolModels的设计

Ⅴ.1.1功能描述

在解决方案中,创建MySchoolModels项目,并在此项目中创建Admin类、Class类、Grade类和Student类,实现面向对象编程。Ⅴ.1.2设计步骤及代码解析

(1)打开MicrosoftVisualStudio2005,创建一个Windows窗体应用程序,将其改名为MySchool,再创建一个类库,项目名称输入MySchoolModels,位置根据自己需要选择设定,单击“确定”按钮。

(2)单击Class1.cs,将其重命名为Admin.cs。在Admin.cs中添加三个属性。具体代码和分析如下:

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)在解决方案管理器中,点击MySchoolModels项目,右击,选择添加新建项。在模版中选择类,将类名更改为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 班级编号属性。

12~16班级名属性。

18~22年级编号属性。

(4)在MySchoolModels项目中,继续添加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年级编号属性。

10~14年级名属性。

30~33学生Id属性。

35~39登录Id属性。

41~45登录密码属性。

47~51用户状态Id属性。

53~57班级Id属性。

59~63学生学号属性。

65~69学生姓名属性。

71~75学生性别属性。

77~81身份证属性。

82~85联系电话属性。

88~92家庭住址属性。Ⅴ.1.3知识库

1. Grade类

Grade类用于封装Grade表中的各个字段,将其转换为对应属性。

2. Class类

Class类用于封装Class表中的各个字段,将其转换为对应属性。

3. Admin类

Admin类用于封装Admin表中的各个字段,将其转换为对应属性。

4. Student类

Student类用于封装Student表中的各个字段,将其转换为对应属性。 Ⅴ.2任务二:配置文件的设置

Ⅴ.2.1功能描述

在配置文件中设置连接字符串以及数据库类型。Ⅴ.2.2设计步骤

(1)在MySchool项目中点击app.config文件,在该文件中添加connectionStrings节点,在此节点中设置连接字符串。具体代码如下:

<connectionStrings>

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

<addname="MySchoolConnectionString"connectionString="Data

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

providerName="System.Data.SqlClient"/>

</connectionStrings>

(2)在配置文件中再添加appSettings节点,在此节点中设置数据库类型。具体代码如下:

<appSettings>

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

</appSettings>Ⅴ.3任务三:数据访问层接口的设计

Ⅴ.3.1功能描述

在解决方案中创建类库MySchoolIDAL,添加IAdminService、IClassService、IGradeService和IStudentService四个接口,实现多态的编程。

Ⅴ.3.2设计步骤

(1)在解决方案中添加一个类库项目MySchoolIDAL,右击此项目,添加新建项,选择“接口”模板。将interface1.cs改名为IAdminService.cs。在接口IAdminService中定义如下方法,此方法用于根据登录ID获得密码:

stringGetAdminLoginPwdByLoginID(stringloginID);

(2)在MySchoolIDAL项目中添加接口IClassService,并在此接口中定义如下两个方法,分别用于根据班级名获得班级ID和根据年级ID获得班级集合:

stringGetClassIDByClassName(stringclassName);

ArrayListGetClassByGradeID(intgradeID);

(3)在MySchoolIDAL项目中添加接口IGradeService,在此接口中定义如下两个方法,分别用于获得所有的年级和根据年级名获得年级ID:

List<Grade>GetAllGrades();

intGetGradeByGradeName(stringgradeName);

(4)在MySchoolIDAL项目中添加接口IStudentService,在此接口中定义如下方法:

intAddStudent(StudentobjStudent);

//添加新学员

voidDeleteStudent(stringloginID); //根据登录ID删除学员

voidModifyStudent(StudentobjStudent);//修改学生对象

StudentGetStudentInfoByLoginID(stringloginID);

//根据登录ID获得学员信息

List<Student>GetStudentLoginPwdByLoginID(stringloginID);

//根据登录ID获得学员的登录密码

IList<Student>GetAllStudents(); //获得所有的学员对象集合

intGetStudentIDByLoginID(stringloginID);//根据登录ID获得学员IDⅤ.3.3知识库

1. IAdminService接口

IAdminService接口抽象了GetAdminLoginPwdByLoginID(stringloginID)方法,定义此方法是为了实现根据登录ID获得管理员登录密码,其具体实现由实现该接口的类来完成。

2. IClassService接口

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

(intGradeID)方法,定义这两个方法是为了实现根据班级名获得班级ID和根据年级ID获得班级集合,其具体实现由实现该接口的类来完成。

3.IGradeService接口

IGradeService接口抽象了GetAllGrades()和GetGradeByGradeName(stringgradeName)方法,这两个方法的主要功能是实现获得所有年级和根据年级名获得年级ID,其具体实现由实现该接口的类来完成。

4. IStudentService接口

IStudentService接口抽象了7个方法,分别用于增加、删除、修改等操作,其具体实现由实现该接口的类来完成。

Ⅴ.4任务四:数据访问层的设计

Ⅴ.4.1功能描述

在解决方案中创建类库MySchoolDAL,用于集成对数据库数据的操作。

Ⅴ.4.2设计步骤及代码解析

(1)在项目MySchoolDAL中创建一个类AdminService,用于执行对数据库表Admin的操作。首先使类AdminService实现接口IAdminService。具体代码与分析如下:

1

publicclassAdminService:IAdminService

2

{

3

//从配置文件中读取数据库连接字符串

4

privatereadonlystringconnString=

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

5

privatereadonlystringdboOwner=

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

6

///<summary>

7

///根据管理员登录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(①){②}的结构,是为了及时释放对象所占用的资源,其中①的部分代表所要释放的对象,②的部分代表对象的生存期,即在②部分的代码执行完后,①部分的对象允许被释放。

16~17创建一个SqlCommand类型的对象,并设置其命令文本类型为存储过程,其中usp_SelectAdminByLoginID为存储过程的名字。存储过程具体代码如下:

ALTERPROCEDURE[dbo].[usp_SelectAdminByLoginID]

@LoginIdvarchar(50)

AS

SETNOCOUNTON

SETTRANSACTIONISOLATIONLEVELREADCOMMITTED

SELECT

[LoginPwd],

[LoginId],

[AdminName],

[Sex]

FROM

[dbo].[Admin]

WHERE

[LoginId]=@LoginId

(2)在项目MySchoolDAL中创建一个类GradeService,用于执行对数据库表Grade的操作。首先使类GradeService实现接口IGradeService。具体代码与分析如下:

1

publicclassGradeService:IGradeService

2

{

3

//从配置文件中读取数据库连接字符串

4

privatereadonlystringconnString=ConfigurationManager.ConnectionStrings

["MySchoolConnectionString"].ToString();

5

privatereadonlystringdboOwner=ConfigurationManager.ConnectionStrings

["DataBaseOwner"].ToString();

6

///<summary>

7///得到所有年级集合

8///</summary>

9///<returns>年级集合</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

///通过年级名称得到年级ID

37///</summary>

38

///<paramname="gradeName">年级名称</param>

39

///<returns>年级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 创建一个泛型集合,用于存储查询的年级集合。

16~17创建一个SqlCommand类型的对象,并设置其命令文本类型为存储过程,其中usp_SelectGradesAll为存储过程的名字。存储过程具体代码如下:

ALTERPROCEDURE[dbo].[usp_SelectGradesAll]

AS

SETNOCOUNTON

SETTRANSACTIONISOLATIONLEVELREADCOMMITTED

SELECT

[GradeID],

[GradeName]

FROM

[dbo].[Grade]

19~25执行命令,循环读出数据并且添加到泛型集合中。

42 创建一个int类型变量,用于存储年级编号。

45~46创建一个SqlCommand类型的对象,并设置其命令文本类型为存储过程,其中usp_SelectGradeByGradeName为存储过程的名字。存储过程具体代码如下:

ALTERPROCEDURE[dbo].[usp_SelectGradeByGradeName]

@GradeNamenvarchar(50)

AS

SETNOCOUNTON

SETTRANSACTIONISOLATIONLEVELREADCOMMITTED

SELECT

[GradeID]

FROM

[dbo].[Grade]

WHERE

[GradeName]=@GradeName

(3)在MySchoolDAL中创建一个类ClassService实现接口IClassService,用于执行对数据库表Class的操作。

1

publicclassClassService:IClassService

2

{

3

//从配置文件中读取数据库连接字符串

4

privatereadonlystringconnString=ConfigurationManager.ConnectionStrings

["MySchoolConnectionString"].ToString();

5

privatereadonlystringdboOwner=ConfigurationManager.ConnectionStrings

["DataBaseOwner"].ToString();

6

///<summary>

7

///通过班级名称得到班级ID

8

///</summary>

9

///<paramname="className">班级名称</param>

10

///<returns>班级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

///通过年级ID得到年级对应的班级

34

///</summary>

35

///<paramname="gradeID">年级ID</param>

36

///<returns>班级集合</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 实现接口中定义的方法GetClassIDByClassName。

16 创建一个SqlCommand类型的对象,并设置其命令文本类型为存储过程,其中usp_SelectClassIDByClassName为存储过程的名字。

存储过程具体代码如下:

ALTERPROCEDURE[dbo].[usp_SelectClassIDByClassName]

@ClassNamenvarchar(50)

AS

SETNOCOUNTON

SETTRANSACTIONISOLATIONLEVELREADCOMMITTED

SELECT

[ClassID]

FROM

[dbo].[Class]

WHERE

ClassName=@ClassName

37 实现接口中定义的方法GetClassByGradeID(intGradeID)。

42~43创建一个SqlCommand类型的对象,并设置其命令文本类型为存储过程,其中usp_SelectClassesByGradeID为存储过程的名字。存储过程具体代码如下:

ALTERPROCEDURE[dbo].[usp_SelectClassesByGradeID]

@GradeIDint

AS

SETNOCOUNTON

SETTRANSACTIONISOLATIONLEVELREADCOMMITTED

SELECT

[ClassID],

[ClassName]

FROM

[dbo].[Class]

WHERE[GradeID]=@GradeID

(4)在MySchoolDAL中,创建一个类StudentService实现接口IStudentService,用于执行对数据库表Student的操作。具体代码及分析如下:

1

publicclassStudentService:IStudentService

2

{

3#regionPrivateMembers

4

//从配置文件中读取数据库连接字符串

5

privatereadonlystringconnString=ConfigurationManager.ConnectionStrings

["MySchoolConnectionString"].ToString();

6

privatereadonlystringdboOwner=ConfigurationManager.ConnectionStrings

["DataBaseOwner"].ToString();

7

#endregion

8

9#regionPublicMethods

10

///<summary>

11

///创建学员帐户

12

///</summary>

13

///<paramname="objStudent">学员实体对象</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

///根据学员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///根据登录ID得到学员信息

57///</summary>

58

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

59

///<returns>学员信息实体</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

///根据学员登录ID得到学员ID

88

///</summary>

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

90

///<returns>学员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///根据登录ID得到学员登录密码和用户状态ID

115

///</summary>

116

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

117

///<returns>密码和状态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

///更新学员信息

147

///</summary>

148///<paramname="objStudent">学员实体对象</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

///返回所有学员信息集合

170

///</summary>

171///<returns>学员信息集合</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等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论