♂WhiteWin♂

导航

原教务管理系统辅助程序中存在的一些问题

    开始逐渐习惯于使用cnblogs写技术文章,将平时工作中遇到的问题记录在此,备忘。

    2007年的时候,为配合学校购买的汇能教务管理系统的使用,编写一个辅助程序,主要是两个作用,一是将最早用于90年代中专使用的成绩管理系统的数据(使用FoxBase)导入到SQL Server中进行管理,二是读出汇能教务系统中的数据(Oracle),以便于打印成绩总表,并提供编辑修改功能。新修改的数据保存在SQL Server中。

    这个辅助程序是用VS 2003写的,使用了Oracle的ODP.NET来操作Oracle数据库。

    学校后来买了正方的教务管理系统,这个汇通的系统就给了中专部使用,所以我这个辅助程序主要是用于在毕业生离校时打印成绩总表。由于现在中专普遍只上两年课了,所以后来还要补上毕业实习、顶岗实习、毕业设计等课程的成绩。

    由于北校区处置,中专部去年下半年由北校区搬到了二街的技工学校了,不在学校的校园网内了。原来管理是VPN到学校,他们感觉速度很慢,所以把汇能软件的服务器(包括数据库和Web程序)搬到了中专部。最近有毕业生要打印毕业成绩总表,所以又要用到这个软件(平时的成绩管理用的都是汇能)。由于SQL Server在学校内,使用时还是要VPN到学校,这样两个数据库都能使用上。

    但是奇怪了,出现班级的学生名单时,点击不同的学生,右侧的学生成绩列表中,学生不换人了。

    只到回到办公室重新做调试。由于早已不用VS 2003了,于是在VS 2005下重新配置做调试。由于没有Oracle数据库(那个在外网),把读取Oracle的代码注释掉,花了两个小时看代码和调试,终于找到问题:

    在显示成绩总表的Form_Load事件中,有如下代码:

   if ( ddlClass.SelectedItem == null) return;
   BindStudentInfo(ddlClass.SelectedValue.ToString());     // 根据选定班级,绑定学生信息到学生列表中
   this.ddlStudent.SelectedIndexChanged += new System.EventHandler(this.ddlStudent_SelectedIndexChanged);
    估计是当时考虑,怕班级的学生列表为空,会导致发生异常,才这么处理的。

    结果,现在这个软件只能中专部使用,系部列表中先显示的是信息工程系,在2011届毕业生中已经没有班级的,所以没有绑定ddlStudent_SelectedIndexChanged事件,以至于无法更换学生了。

    由于懒于重新编译程序再部署,于是在数据库中下功夫,手工增加信息工程系2011年毕业的几个班级。通知中专部测试一下,可以正常使用了。

 

posted on 2011-04-12 09:44  银翼  阅读(261)  评论(0编辑  收藏  举报