一、引言
在学校,尤其是在各大普通高校,学籍信息是学校的一项重要的数据资源,学籍管理也是学校的一项常规性的重要工作。学籍管理系统不但能使学生管理人员从复杂的学籍管理任务中解脱出来,而且对于推动教学的发展也起到非常重要的作用!而长期以来,学籍管理中学生信息大都是依赖人工录入的,面对如此众多的学籍信息,其工作量可想而知。不仅仅浪费了大量的人力物力,而且由于人工管理存在着大量的不可控因素,造成了学籍管理的某些不规范。
普通高校新生学籍电子注册工作是当前加强高等教育管理、提高教育质量的必要措施,是从源头上治理违规招生、规范办学行为的重要举措。为此,教育部高校学生司发布了《普通高等学校新生学籍电子注册暂行办法》(教学[2007]3号),文件要求新生学籍电子注册工作与新生入学复查同步进行,并同时要求各高校建立自己的学籍查询网站,与教育部公布学籍信息进行对比核查。
近几年,随着普通高等学校招生网上录取逐步推广,快速、准确地获取已录取考生信息成为可能。新生录取结束后,将考生的信息导入到新生管理系统中,实现新生分配专业、分配班级、生成学号、报到注册或退档,以及必要的调系(专业)、调班等处理,并适时导入学籍管理数据库。
二、高招导出数据表结构
1.高招导出数据表结构
目前,普通高校招生网上录取已在全国范围内实现,各省网上录取结束后,就可以导出本校录取的考生信息。其实,导出的内容是25个扩展名.DBF的数据表,录取的考生信息就分散在这25个DBF文件中,如表1所示。


其中,以TD_开头的18个DBF表文件,大多具有代码和代码所对应中文名称两个有用字段,常用数据之间的关联关系如图1所示。

图1 常用13个DBF表之间的关系
2.可获取的考生信息
(1)考生基本信息表
所有考生的基本信息数据都在T_TDD.DBF(投档单)数据表中。出于网上招生录取实时性、网速及数据冗余等方面考虑,T_TDD.DBF表中大量采用代码表示考生的信息,可直接获取的考生基本信息如表2所示。

这些字段内容可直接转换至新生数据表。而更多的信息是用代码表示的,为了获取相应的考生信息,需要和对应的数据表关联,才能导入相关信息。
(2)考生简历表
考生简历数据在T_KSJL.DBF数据表中,其结构如表3所示。相关简历信息通过“考生号”与考生基本信息T_TDD.DBF(投档单)数据表关联获得。
表3 T_KSJL.DBF考生简历信息表结构
序号 |
字段名 |
类型 |
长度 |
含义 |
1 |
KSH |
字符 |
14 |
考生号 |
2 |
QSRQ |
日期 |
8 |
自何年何月 |
3 |
ZJRQ |
日期 |
8 |
至何年何月 |
4 |
JL |
字符 |
64 |
在何单位学习或工作 |
5 |
RHZW |
字符 |
64 |
任何职务 |
6 |
ZMR |
字符 |
64 |
证明人 |
3.获取招生计划
录取专业名称、教育部专业编号、招生人数等计划信息在数据表T_JHK.DBF中。
4.代码中涉及的关键数据
(1)考生号
普通高考考生号(14位)编排办法及代表意义如图2所示:

图2 考生号构成关系
其中:
1)第1、2位为年份的后两位数。如2007年,第1、2位为“07”。
2)第3至8位共6位为行政区划代码(国标码)。
3)第9位为考试类型代码。编码如下:
0 春季统考 1 秋季统考 2 保送 3 小语种 4 二学位
5 实践青年 6 职教师资 7 运动训练民族体育 8三校生(高职班) 9 自定义项(单考)
4)第10位为科类代码。编码如下:
1 文史 3艺术(文) 4体育 (文) 5理工
7艺术(理) 8 体育(理) 9 单独考试
5)如果考生号第10位为“3”或“7”,即该考生号为艺术类考生的考生号,则第11位就为该考生号的艺术类加试类别代码,定义为:美术类——2(3,4备用);音乐类——6(7,8备用);其他——9(0,1备用)。
6)普通三校生考生号的第9、10位为“85”。四年制中专免试生的考生号,第9、10位为“85”,但第11位设为“9”,以区分与普通三校生的不同。
7)实践班的考生号第9、10位为“55”。
8)第11位至第14位为流水号。
(2)生源地省(市、自治区)代码及名称
招生录取是按省(市、自治区)分别进行的。从导出的数据表中正确取出省(市、自治区)代码和名称也是必要的,以便确定考生的籍贯,同时,学生毕业也需要该信息。
三、新生数据表结构
1.创建接收新生信息的数据表
根据上述对高招导出数据表结构的分析,根据新生管理要求分别建立新生基本信息数据表NewStudentInfo和新生简历数据表NewStudentIntro,具体参数如图3和图4所示。

图3 新生基本信息表NewStudentInfo结构

图4 新生简历表NewStudentIntro结构
学生基本信息表除了对应导入的相应字段外,还要增加一些新生管理或学籍管理中所需的必要字段,如:学号、班级名称、校内的专业编号、报到标志等。
为保证数据集方式更新的可行性,新生基本信息数据表NewStudentInfo和新生简历数据表NewStudentIntro中必须要有标识列NewStudentID和NewStudentIntroID。
四、代码描述
1.主窗体设计
首先,启动Visual Studio .NET 20003,新建一个项目。然后在“新建项目”对话框中选择“Visual C#项目”的“Windows应用程序”,在“名称”文本框中输入同一目录下唯一名称来命名该项目,在“位置”文本框中输入该项目保存的目录或单击“浏览”按钮选择确定目录。单击“确定”按钮后出现设计窗体。
依次添加下述主要功能控件:
Label控件:lblFilesPath(路径)、label2、label3
Button控件:btnFilePath(…钮)、btnOK(数据导入)、btnClose(关闭)
ListBox控件:lbFiles(DBF文件列表框)
ComboBox控件:cbProvinces(生源地组合框)
DataGrid控件:dataGrid1(考生信息表)
StatusBar控件:statusBar1(状态行)
适当调整各控件的位置和大小,界面如图5所示。

图5 主窗体
加载窗体事件核心代码及用到的全局量如下:
private string conStr; // 数据库连接串
private DataSet m_Ds; // 数据集
private DataTable m_provinces; // 数据表
private void Form1_Load(object sender, EventArgs e)
{ // 获取省(市、自治区)代码表 => m_provinces
try
{ // 填充m_Provinces
OleDbConnection conn = new OleDbConnection(conStr);
string sql = "SELECT Code,CodeMean FROM Code";
OleDbCommand cmd = new OleDbCommand(sql, conn);
new OleDbDataAdapter(cmd).Fill(m_Provinces);
// 填充cbProvinces
this.cbProvinces.DataSource = m_Provinces;
this.cbProvinces.DisplayMember = "CodeMean";
this.cbProvinces.ValueMember = "Code";
this.cbProvinces.Visible = false;
}
catch (Exception exception1)
{
MessageBox.Show(exception1.Message);
}
}
该程序的功能是从Code数据表中读出省(市、自治区)的代码Code和名称CodeMean,填充到DataTable表m_Provinces中,同时赋值给ComboBox组合框cbProvinces,用以确定生源地所在的省(市、自治区)。
2.分省录取数据文件夹选择对话框设计
在主窗体中,btnFilePath按钮控件用于打开浏览文件夹对话框,选择后的文件夹路径信息显示在lblFilesPath标签控件中。从该文件夹中取出所有DBF文件显示在lbFiles列表框中,同时在label2标签中显示获取的数据文件的个数。
如果文件夹路径为非空,则通过Browser()方法获取高招导出数据表关联的考生信息,核心代码如下:
private void btnFilePath_Click(object sender, EventArgs e)
{
string FilePath = "";// 获取DBF数据文件路径文件夹
try
{
if (this.fbdFiles.ShowDialog() != DialogResult.OK)
return; // 取消返回
FilePath = fbdFiles.SelectedPath.Trim();
this.lblFilesPath.Text = "路径:" + FilePath;
|