1、项目四 考试管理系统.1 任务一:任务一:“考试管理系统考试管理系统”各窗体设计各窗体设计.2 任务二:任务二:“登录界面登录界面”窗体数据库连接操作的功能实现窗体数据库连接操作的功能实现.3 任务三:在任务三:在AdminForm窗体中显示子窗体窗体中显示子窗体.4 任务四:增加新的学员任务四:增加新的学员.5任务五:学员信息列表及修改学员信息任务五:学员信息列表及修改学员信息.6 任务六:查询学员信息任务六:查询学员信息 .1 任务一:任务一:“考试管理系统考试管理系统”各窗体设各窗体设计计.1.1 功能描述功能描述在本例中,我们将通过使用工具箱中的文本框、按钮等控件,实现“考试管理系统”
2、的登录界面和学员管理界面。.1.2 各窗体设计步骤及技术要点分析各窗体设计步骤及技术要点分析(1)打开Microsoft Visual Studio 2005,创建一个Windows 应用程序,项目名称输入MySchool,位置根据自己需要选择设定,单击“确定”按钮。(2)单击Form1,在解决方案资源管理器中将Form1.cs改为LoginForm.cs,在属性窗口修改Tex属性为“考试管理系统”,修改IsMdiContainer属性为True。(3)在工具箱中拖放四个Label控件、两个TextBox控件、一个ComboBox和两个按钮控件到LoginForm中。在属性窗口中修改各控件的N
3、ame和Text属性,如表.1所示。完成界面如图.1所示。表?.1 登录窗体控件列表 控件名称 代表意义 Name 属性 Text 属性 其它属性 Label 显示系统名 lblSystem 考试管理系统 Label 显示用户名 lblUser 用户名 Label 显示密码 lblPassword 密码 Label 显示身份 lblType 身份 TextBox 输入用户名 txtUser TextBox 输入密码 txtPassword PasswordChar属性设为*ComboBox 选择身份 cboLoginType Items 属性设为 “教员、学员、管理员”Button 确定按钮
4、btnLogin 登录 Button 取消按钮 btnCancel 取消 图.1 登录界面(4)在MySchool项目中添加一个Windows窗体,命名为AdminForm。在窗体中添加如表.2所示的控件。表?.2 AdminForm 中添加的控件 控件名称 代表意义 Name 属性 Text 属性 ToolStripMenuItem 用户管理菜单 tsmiUser 用户管理 ToolStripMenuItem 新增用户菜单项 tsmiNewUser 新增用户 ToolStripMenuItem 新增学员用户菜单项 tsmiNewStudent 新增学员用户 ToolStripMenuItem
5、 查询修改学员菜单项 tsmiSearchStudent 查询及修改学员 ToolStripMenuItem 用户信息列表菜单项 tsmiUserList 用户信息列表 ToolStripMenuItem 学员信息列表菜单项 tsmiStudentList 学员信息列表 ToolStripMenuItem 退出菜单项 tsmiExit 退出 ToolStripDropDownButton 新增用户下拉按钮 tsddbNewUser 新增用户 ToolStripMenuItem 新增学员用户菜单项 tsbtnNewStudent 新增学员用户 ToolStripButton 查询及修改学员工具栏
6、按钮 tsbtnSearchStudent 查询及修改学员 ToolStripButton 学员信息列表 tsbtnStudentList 学员信息列表 图.2 AdminForm窗体界面(5)在MySchool项目中添加一个Windows窗体,命名为StudentListForm。将窗体的Text属性设置为“学员信息列表”。在窗体中添加如表.3所示的控件。表?.3 StudentListForm 中添加的控件 控件名称 代表意义 Name 属性 Text 属性 Label 筛选条件 lblSearch 按性别筛选 ComboBox 筛选选项 cboSex Button 查询按钮 btnReF
7、ill 筛选 DataGridView 显示查询内容 dgvStudent Button 保存修改按钮 btnUpdate 保存修改 Button 刷新按钮 btnRefresh 刷新 Button 关闭按钮 btnClose 关闭 图.3 StudentListForm窗体界面(6)在MySchool项目中添加一个Windows窗体,命名为SearchStudentForm。将窗体的Text属性设置为“查找学员用户”。在窗体中添加如表.4所示的控件。表?.4 SearchStudentForm 中添加的控件 控件名称 代表意义 Name 属性 Text 属性 Label 显示用户名 lblL
8、oginID 用户名 TextBox 输入用户名 txtLoginId Label 提示查询功能 lblComment(支持模糊查找)ListView 显示查找内容 lvStudent Button 关闭按钮 btnClose 关闭 ContextMenuStrip 右键菜单 cmsStudent 还需将lvStudent的Columns属性进行修改。进入ColumnHeader集合编辑器界面,如图.4所示,添加四列,列名分别为chLoginID、chStudentName、chStudentNO和chUserState,并将chLoginID的Text属性设置为“用户名”,chStudent
9、Name的Text属性设置为“姓名”,chStudentNO的Text属性设置为“学号”,chUserState的Text属性设置为“用户状态”。右键菜单cmsStudent包含两个ToolStripMenuItem,分别为mnuModify和mnuDelete,其Text属性分别为“修改用户状态”和“删除”。mnuModify菜单下还包含两个ToolStripMenuItem,分别为MnuActive和MnuInActive,其Text属性分别为“活动”和“非活动”。SearchStudentForm窗体界面如图.5所示。图.4 ColumnHeader集合编辑器界面 图.5 SearchS
10、tudentForm窗体界面(7)在MySchool项目中添加一个Windows窗体,命名为AddStudentForm。将窗体的Text属性设置为“创建学员用户”。在窗体中添加两个按钮,btnSave和btnClose,分别设置其Text属性为“保存”和“关闭”。添加TabControl控件,命名为tabNewStudent,并设置其TabPages属性。进入TabPage集合编辑器界面,如图.6所示,点击“添加”按钮,添加两个TabPage页,并将其重命名为tpRegisterInfo和tpBaseInfo,分别设置两个TabPage页的Text属性为“用户注册信息”和“用户基本信息”。在
11、tpRegisterInfo和tpBaseInfo页面中添加控件,具体如表.5和表.6所示。AddStudentForm界面如图.7和图.8所示。图.6 TabPage集合编辑器 表?.5 tpRegisterInfo 中添加的控件 控件名称 代表意义 Name 属性 Text 属性 Label 显示用户名 lblUser 用户名 Label 显示密码 lblPassword 密码 Label 显示状态 lblState 状态 TextBox 输入用户名 txtLoginId TextBox 输入密码 txtLoginPwd TextBox 确认密码 txtPwdAgain RadioButt
12、on 活动单选按钮 rdoActive 活动 RadioButton 非活动单选按钮 rdoInActive 非活动 控件名称 代表意义 Name 属性 Text 属性 Label 显示姓名 lblStudentName 姓名 Label 显示学号 lblStudentNO 学号 Label 显示电话 lblPhone 电话 Label 显示电子邮件 lblEmail 电子邮件 Label 显示性别 lblSex 性别 Label 显示年级 lblGrade 年级 Label 显示班级 lblClass 班级 TextBox 输入姓名 txtStudentName TextBox 输入学号 t
13、xtStudentNO TextBox 输入电话 txtPhone TextBox 输入电子邮件 txtEmail RadioButton 性别选择 rdoMale 男 RadioButton 性别选择 rdoFemale 女 ComboBox 选择年级 cboGrade ComboBox 选择班级 cboClass 图.7 用户注册信息 图.8 用户基本信息.2 任务二:任务二:“登录界面登录界面”窗体数据库连接操作的功能实窗体数据库连接操作的功能实现现.2.1 功能描述功能描述在“登录界面”中,通过合法的用户名、密码以及身份登录数据库。.2.2 功能代码展示及功能实现技术要点分析功能代码展
14、示及功能实现技术要点分析(1)在SqlServer2000中创建名为“MySchool”的数据库,并创建六张数据表,其中Admin用于记录管理员信息,Class用于记录班级信息,Grade用于记录年级信息,Student用于记录学生信息,Teacher用于记录教师信息,UserState用于记录用户状态信息。具体字段设置如表.7所示(Teacher表与Student表类似)。表?.7 MySchool 数据库中的数据库 表 名 字 段 名 数据类型 代表意义 AdminId 自动增长 管理员 ID LoginId Nvarchar(50)登录ID Admin LoginPwd Nvarchar
15、(50)登录密码 ClassId 自动增长 班级ID ClassName Nvarchar(50)班级名 Class GradeId Int 年级ID GradeId 自动增长 年级ID Grade GradeName Nvarchar(50)年级名 StudentId 自动增长 学生ID LoginId Nvarchar(50)登录ID LoginPwd Nvarchar(50)登录密码 UserStateId int(4)用户状态 ClassId int(4)班级ID StudentNO Nvarchar(50)学号 StudentName Nvarchar(50)学生姓名 Sex Nva
16、rchar(50)性别 Phone Nvarchar(50)电话 Address Nvarchar(50)家庭住址 Student Email Nvarchar(50)邮件地址 UserStateId 自动增长 用户状态 ID UserState UserState Nvarchar(50)用户状态 (2)在LoginForm.cs中定义一个返回值为bool类型的方法ValidateInput(),用于验证用户的输入。具体代码如下:1 private bool ValidateInput()2 3 if(txtLoginId.Text.Trim()=)4 5 MessageBox.Show(请
17、输入用户名,登录提示,MessageBoxButtons.OK,MessageBoxIcon.Information);6 txtLoginId.Focus();7 return false;8 9 else if(txtLoginPwd.Text.Trim()=)10 11 MessageBox.Show(请输入密码,登录提示,MessageBoxButtons.OK,MessageBoxIcon.Information);12 txtLoginPwd.Focus();13 return false;14 15 else if(cboLoginType.Text.Trim()=)16 17
18、MessageBox.Show(请选择登录类型,登录提示,MessageBoxButtons.OK,MessageBoxIcon.Information);18 cboLoginType.Focus();19 return false;20 21 else22 23 return true;24 25 代码分析:1 验证用户名、密码、登录类型。37 如果文本框txtLoginId的内容为空,则提示“输入用户名”,文本框txtLoginId获得焦点,并返回false。913 如果txtLoginPwd的内容为空,则提示“输入密码”,文本框txtLoginPwd获得焦点,并返回false。1519
19、 如果cboLoginType的内容为空,则提示“选择登录类型”,下拉框cboLoginType获得焦点,并返回false。2123 其它情况,返回true。(3)在解决方案MySchool中添加一个新的类DBHelper,用于维护数据库连接字符串和Connection对象,在DBHelper.cs中引入命名空间System.Data.SqlClient。具体代码如下:1 class DBHelper2 3 private static string connString=Data Source=.;Initial Catalog=MySchool;Integrated Security=tr
20、ue;4 public static SqlConnection connection=new SqlConnection(connString);5 代码分析:1 定义数据库帮助类DBHelper。3 定义一个公有的静态的字符串类型变量connString,用于存储数据库连接字符串。4 定义一个公有的静态的SqlConnection类型的变量connection,用于存储数据库连接。(4)在解决方案MySchool中添加一个新的类UserHelper,用于存储登录用户信息,包括用户名和用户类型,具体代码如下所示:1 public class UserHelper2 3 public stat
21、ic string loginId=;4 public static string loginType=;5 代码分析:1 定义一个UserHelper类。3 定义一个公有的静态的变量loginId,用于存储登录ID。4 定义一个公有的静态的变量loginType,用于存储登录类型。(5)在LoginForm.cs中定义一个返回值为bool类型的方法ValidateUser(),用于判断用户名、密码和登录类型的合法性。具体代码如下:1 private bool ValidateUser(string loginId,string loginPwd,string loginType,ref st
22、ring message)2 3 string tableName=;4 bool result=true;5 switch(loginType)6 7 case 教员:8 tableName=Teacher;9 break;10 case 学员:11 tableName=Student;12 break;13 case 管理员:14 tableName=Admin;15 break;16 default:17 message=登录类型错误!;18 result=false;19 break;20 21 string sql=string.Format(SELECT COUNT(*)FROM
23、0 WHERE LoginId=1 AND LoginPwd=2,22 tableName,loginId,loginPwd);23 try24 25 SqlCommand command=new SqlCommand(sql,DBHelper.connection);26 DBHelper.connection.Open();27 int count=(int)command.ExecuteScalar();28 if(count 1)29 30 message=用户名或密码不存在!;31 result=false;32 33 else34 35 result=true;36 37 38 c
24、atch(Exception ex)39 40 message=操作数据库出错!;41 Console.WriteLine(ex.Message);42 result=false;43 44 finally45 46 DBHelper.connection.Close();47 4849 return result;50 代码分析:1 验证用户名、密码和登录类型的方法。3 定义一个字符串类型的变量tableName,用于存储要查询的数据表名。4 定义一个布尔类型的变量result,用于存储返回值。520 根据登录类型确定要查询的数据表。2122 定义一个字符串类型的变量sql,用于存储查询字符
25、串。25 创建一个SqlCommand类型的command。26 调用DBHelper类的静态变量connection的Open()方法打开数据库连接。27 调用command对象的ExecuteScalar()方法执行命令。2837 对返回结果进行判断,如果合法,则返回true;如果不合法,则返回false。46 调用DBHelper类的connection对象的Close()方法关闭数据库连接。49 返回result。.2.3 知识库知识库1.DBHelperDBHelper类是一个数据库帮助类,用于实现一些数据库相关操作与信息。在本项目中,DBHelper类创建了SqlConnectio
26、n对象,用于建立数据库连接和存储连接字符串。2.UserHelperUserHelper类是一个用户帮助类,定义了两个静态变量,用于存储用户名和用户类型。.3 任务三:在任务三:在AdminForm窗体中显示子窗体窗体中显示子窗体.3.1 功能描述功能描述在父窗体AdminForm中,显示StudentListForm、SearchStudentForm、AddStudentForm等子窗体。.3.2 代码解析代码解析在AdminForm窗体中,添加如下代码:1 private void AdminForm_Load(object sender,EventArgs e)2 3 this.slb
27、lAdmin.Text=this.slblAdmin.Text+-+UserHelper.loginId;4 5 private void AdminForm_FormClosed(object sender,FormClosedEventArgs e)6 7 Application.Exit();8 9 private void tsmiExit_Click(object sender,EventArgs e)10 11 DialogResult choice;12 choice=MessageBox.Show(确定要退出吗?,退出系统,MessageBoxButtons.OKCancel,
28、MessageBoxIcon.Information);13 if(choice=DialogResult.OK)14 15 Application.Exit();16 17 18 private void tsmiNewStudent_Click(object sender,EventArgs e)19 20 AddStudentForm addStudentForm=new AddStudentForm();21 addStudentForm.MdiParent=this;22 addStudentForm.Show();23 24 private void tsmiSearchStude
29、nt_Click(object sender,EventArgs e)25 26 SearchStudentForm searchStudentForm=new SearchStudentForm();27 searchStudentForm.MdiParent=this;28 searchStudentForm.Show();29 30 private void tsmiStudentList_Click(object sender,EventArgs e)31 32 StudentListForm studentListForm=new StudentListForm();33 stude
30、ntListForm.MdiParent=this;34 studentListForm.Show();35 代码分析:14 在AdminForm_Load()方法中,将UserHelper中的loginId的值赋值给状态栏的标签。58 在AdminForm_FormClosed()方法中,关闭应用程序。918 在退出菜单单击事件tsmiExit_Click中,跳出提示窗口,如果选择“是”,则退出应用程序。1924 用户单击创建用户菜单项时,出现新建学员用户窗口,并设置其为AdminForm的子窗体。2631 点击查询学员用户菜单项时,出现查询学员用户窗口,并设置其为AdminForm的子窗体
31、。3538 点击学员列表菜单项时,出现学员列表窗口,并设置其为AdminForm的子窗体。.4 任务四:增加新的学员任务四:增加新的学员.4.1 功能描述功能描述在AddStudentForm窗体中,增加新的学员记录。.4.2 设计步骤及代码解析设计步骤及代码解析(1)在AddStudentForm窗体中,定义一个返回值为bool类型的ValidateInput()方法,用于验证用户输入的正确性。具体代码如下:1 private bool ValidateInput()2 3 if(txtLoginId.Text=)4 5 MessageBox.Show(请输入用户名,输入提示,Message
32、BoxButtons.OK,MessageBoxIcon.Information);6 txtLoginId.Focus();7 return false;8 9 if(txtLoginPwd.Text=“”)10 11 MessageBox.Show(“请输入密码”,“输入提示”,MessageBoxButtons.OK,MessageBoxIcon.Information);12 txtLoginPwd.Focus();13 return false;14 15 if(txtPwdAgain.Text=)16 17 MessageBox.Show(“请输入确认密码”,“输入提示”,Mess
33、ageBoxButtons.OK,MessageBoxIcon.Information);18 txtPwdAgain.Focus();19 return false;20 21 if(!(txtLoginPwd.Text=txtPwdAgain.Text)22 23 MessageBox.Show(“两次输入的密码不一致”,“输入提示”,MessageBoxButtons.OK,MessageBoxIcon.Information);24 txtPwdAgain.Focus();25 return false;26 27 if(!rdoActive.Checked&!rdoInactive.
34、Checked)28 MessageBox.Show(请设置用户的状态,输入提示,MessageBoxButtons.OK,MessageBoxIcon.Information);29 rdoActive.Focus();30 return false;31 32 if(txtStudentName.Text=)33 34 MessageBox.Show(请输入学员姓名,输入提示,MessageBoxButtons.OK,MessageBoxIcon.Information);35 txtStudentName.Focus();36 return false;37 38 if(txtStude
35、ntNO.Text=)39 40 MessageBox.Show(请输入学号,输入提示,MessageBoxButtons.OK,MessageBoxIcon.Information);41 txtStudentNO.Focus();42 return false;43 44 if(!rdoMale.Checked&!rdoFemale.Checked)45 MessageBox.Show(请选择学员性别,输入提示,MessageBoxButtons.OK,MessageBoxIcon.Information);46 rdoMale.Focus();47 return false;48 49
36、if(cboClass.Text=)50 51 MessageBox.Show(请选择用户班级,输入提示,MessageBoxButtons.OK,MessageBoxIcon.Information);52 cboClass.Focus();53 return false;54 55 return true;56 代码分析:37 验证是否输入了用户名,如果用户名为空,则提示用户输入,文本框txtLoginId获得焦点,并返回false。913 验证是否输入了密码,如果密码为空,则提示用户输入,文本框txtLoginPwd获得焦点,并返回false。1519 验证是否确认了密码,如果确认密码为
37、空,则提示用户输入,文本框 txtPwdAgain获得焦点,并返回false。2125 验证两次密码是否一致,如果不一致,则提示用户重新输入,确认密码框txtPwdAgain获得焦点,并返回false。2731 验证是否选择了用户状态,如果未选择,则提示用户选择,单选按钮rdoActive获得焦点,返回false。3337 验证是否输入了学员用户姓名,如果姓名为空,则提示用户重新输入,文本框txtStudentName获得焦点,并返回false。3842 验证是否输入了学号,如果学号为空,则提示用户重新输入,文本框txtStudentNO获得焦点,并返回false。4448 验证是否选择了性别
38、,如果为选择,则提示用户选择,单选按钮rdoMale获得焦点,并返回false。5054 验证是否选择了学员用户的班级,如果班级为空,则提示用户重新选择,下拉框cboClass获得焦点,并返回false。55 除此以外的其它情况返回true。(2)在窗体载入的时候打开数据库连接,将MySchool中的Grade表的年级名添加到年级名下拉框中。具体实现代码如下:1 private void AddStudentForm_Load(object sender,EventArgs e)2 3 string sql=SELECT GradeName FROM Grade;4 SqlCommand co
39、mmand=new SqlCommand(sql,BHelper.connection);5 try6 7 DBHelper.connection.Open();8 SqlDataReader dataReader=command.ExecuteReader();9 10 string gradeName=;11 while(dataReader.Read()12 13 gradeName=(string)dataReaderGradeName;14 cboGrade.Items.Add(gradeName);15 16 dataReader.Close();17 18 catch(Excep
40、tion ex)19 20 MessageBox.Show(操作数据库出错);21 Console.WriteLine(ex.Message);22 23 finally24 25 DBHelper.connection.Close();26 27 代码分析:3 声明一个string类型的变量sql,用于存储查询年级的T-SQL语句。4 声明一个SqlCommand类型的对象command,用于执行T-SQL语句。8 打开数据库连接。9 声明一个SqlDataReader类型的变量dataReader,调用command对象的ExecuteReader()方法执行查询语句。11 声明一个str
41、ing类型的变量gradeName,用于存储年级名称。1215循环读出所有年级名,并添加到年级名下拉框cboGrade中。(3)在AddStudentForm窗体中,当选择的年级发生变化时,变化班级下拉框的选项内容。具体代码如下:1 if(cboGrade.Text.Trim()!=)2 3 int gradeId=-1;4 string sql=SELECT GradeId FROM Grade WHERE GradeName=+cboGrade.Text+;5 SqlCommand command=new SqlCommand(sql,DBHelper.connection);6 SqlD
42、ataReader dataReader;7 try8 9 DBHelper.connection.Open();10 dataReader=command.ExecuteReader();11 if(dataReader.Read()12 13 gradeId=(int)dataReaderGradeId;14 15 dataReader.Close();16 17 catch(Exception ex)18 19 MessageBox.Show(操作数据库出错);20 Console.WriteLine(ex.Message);21 22 finally 23 24 DBHelper.co
43、nnection.Close();25 26 sql=SELECT ClassName FROM Class WHERE GradeId=+gradeId;27 command.CommandText=sql;28 try29 30 DBHelper.connection.Open();31 dataReader=command.ExecuteReader();32 string className=;33 cboClass.Items.Clear();34 while(dataReader.Read()35 36 className=(string)dataReaderClassName;3
44、7 cboClass.Items.Add(className);38 39 dataReader.Close();40 41 catch(Exception ex)42 43 MessageBox.Show(操作数据库出错);44 Console.WriteLine(ex.Message);45 46 finally47 48 DBHelper.connection.Close();49 50 代码分析:1 判断下拉框cboGrade中的内容是否为空。3 声明一个int类型的变量gradeId,用于存储年级编号。4 声明一个string类型的变量sql,用于存储查询年级编号的T-SQL语句。5
45、 声明一个SqlCommand类型的变量command。6 声明一个SqlDataReader类型的变量dataReader。9 打开数据库连接。10 执行查询。1115 根据年级名获得年级Id。16 关闭dataReader。1920 如果出现异常,则提示出错,并在控制台上显示错误信息。24 关闭数据库连接。26 声明一个string类型的变量,用于存储根据年级Id查询班级名称的sql语句。27 重新制定command对象的查询语句。30 打开数据库连接。31 执行查询。32 声明一个string类型的变量className。33 清空下拉框cboClass的选项内容。3437 循环读出所有
46、班级名,并添加到班级下拉框中。39 关闭dataReader。4344 如果出现异常,则提示错误,并将错误信息显示在控制台。48 关闭数据库连接。(4)在AddStudentForm窗体中,定义一个返回值为int类型的方法GetClassId(),用于根据班级名获得班级Id。具体实现代码如下:1 private int GetClassId()2 3 int classId=0;4 string sql=string.Format(SELECT ClassID FROM Class WHERE ClassName=0,cboClass.Text);5 try6 7 SqlCommand com
47、mand=new SqlCommand(sql,DBHelper.connection);8 DBHelper.connection.Open();9 SqlDataReader dataReader=command.ExecuteReader();10 if(dataReader.Read()11 12 classId=(int)dataReaderClassID;13 14 dataReader.Close();15 16 catch(Exception ex)17 18 MessageBox.Show(操作数据库出错);19 Console.WriteLine(ex.Message);2
48、0 21 finally22 23 DBHelper.connection.Close();24 25 26 代码分析:1 判断下拉框cboGrade的内容是否为空。3 声明一个int类型的变量classId,用于存储班级ID。4 根据班级名查询班级Id的T-SQL语句。7 声明一个SqlCommand类型的对象command。8 打开数据库连接。9 执行查询。1013 读出班级Id。14 关闭DataReader对象。1820 如果出现异常,则提示错误,并在控制台显示异常信息。23 关闭数据库连接。26 返回classId。(5)在AddStudentForm窗体的“保存”按钮中实现增加新学
49、员的功能。具体代码如下:1 private void btnSave_Click(object sender,EventArgs e)2 3 if(ValidateInput()4 5 string loginId=txtLoginId.Text;6 string loginPwd=txtLoginPwd.Text;7 string userStateId=rdoActive.Checked?(string)rdoActive.Tag:(string)rdoInactive.Tag;8 string name=txtStudentName.Text;9 string studentNO=txt
50、StudentNO.Text;10 tring phone=txtPhone.Text;11 string email=txtEmail.Text;12 string sex=rdoMale.Checked?rdoMale.Text:rdoFemale.Text;13 int classId=GetClassId();14 string sql=string.Format(INSERT INTO Student(LoginId,LoginPwd,UserStateId,ClassID,StudentName,Sex,Phone,StudentNO,Email)values(0,1,2,3,4,