版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
项目五三层架构重构考试管理系统Ⅴ.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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工程保险与风险管理合同条款(2024版)
- 线上医疗服务平台
- 课件修水教学课件
- 《阿塔吾拉》课件
- 个人经营性贷款合同 2篇
- 三下语文26课教学课件教学课件教学
- 2024版分包给排水工程安全责任合同2篇
- 《和子女沟通技巧》课件
- 全新餐饮合作协议合同范本下载
- 2024年度建筑工程设计与施工合作协议2篇
- 警校生大学生涯规划
- 信息化战争(概述)
- 颂钵培训课件
- 会员体系深度运营
- 乡村防灾减灾救灾知识讲座
- 高中物理《光学》练习题(附答案解析)
- 2024年中国大地保险公司招聘笔试参考题库含答案解析
- 专项施工方案专家论证表格
- 2023年重庆市高考思想政治试卷真题(含答案)
- 米兰大教堂完整版本
- 《我爱宁波》四年级教材说明
评论
0/150
提交评论