zoukankan      html  css  js  c++  java
  • 工大助手--数据读取

    工大助手--数据读取

    实现功能


     

      1)用户可选择获取入学以来所有已修课程的相关信息:课程代号、课程名、课程属性、学分、成绩等信息。

      2)用户可选择获取特定已修课程的相关信息:课程代号、课程名、课程属性、学分、成绩等信息。

      3)用户可获得特定时间段内的加权平均分(1学期、1学年、全部)。

    团队成员


     

      13070003  张   帆

      13070046  孙宇辰

      13070004  崔   巍

      13070006  王   奈

      13070002  张雨帆

      13070045  汪天米

    数据读入


      在上次博客中,我讲到了我所做的工作是数据处理,在这个模块中,主要分为三部分实现,数据读入、查询数据以及加权平均分计算。考虑到每次用户登录后只有一个用户会涉及到处理数据的问题,所以没有必要实例化数据处理的类,所以,我将其设计为静态类来处理。  

      在Python端将获取到的数据存到了excel中,所以我首先要将数据从excel中读到类中定义的DataTable中,实现的代码如下:

     1     #region ----------读取数据----------
     2     /// <summary>
     3     ///    从excel中读取成绩数据,结果存入gradeSet,成功标志hasLoadData
     4     /// </summary>
     5     public static void LoadDataFromExcel()
     6     {
     7         try
     8         {
     9             string strConn;
    10             strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties='Excel 8.0;HDR=False;IMEX=1'";
    11             OleDbConnection OleConn = new OleDbConnection(strConn);
    12             OleConn.Open();
    13             String sql = "SELECT * FROM ["+sheetName+"$]";
    14 
    15             OleDbDataAdapter OleDaExcel = new OleDbDataAdapter(sql, OleConn);
    16             gradesTable = new DataTable();
    17             DataSet ds = new DataSet();
    18             OleDaExcel.Fill(ds, "GradeSheet");
    19             OleConn.Close();
    20             gradesTable = ds.Tables[0];
    21             hasLoadData = true;
    22             return;
    23         }
    24         catch (Exception err)
    25         {
    26             MessageBox.Show(err.Message);
    27             //Console.WriteLine("{0}", err.Message);
    28             hasLoadData = false;
    29             return;
    30         }
    31     }
    32     #endregion    

      在这段代码中,OleConn建立了C#与excel文件的连接,然后定义sql语句把所excel中表名叫sheetName的表中的数据读入OleDbDataAdapter对象中,然后在将数据存入定义好的DataTable对象gradesTable中。由于在学习这一部分的内容的时候发现了DataTable这么一个好东西,所以就节省了很多后续的工作量。DataTable类中封装好了很多的方法,所以操作起来非常的方便。

     

  • 相关阅读:
    matplotlib: ylabel on the right
    ssh 密钥管理
    [转]Linux下创建静态、动态库
    Perl命令行应用介绍
    zz:快速编辑Shell命令行
    zz Makefile学习教程: 跟我一起写 Makefile
    Eureka服务剔除下线
    数据结构可视化
    aeImageResize jQuery图片等比缩放调整插件
    最全的CSS浏览器兼容问题整理(IE6.0、IE7.0 与 FireFox)
  • 原文地址:https://www.cnblogs.com/fanfan-blogs/p/5601702.html
Copyright © 2011-2022 走看看