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类中封装好了很多的方法,所以操作起来非常的方便。

     

  • 相关阅读:
    题解 CF171G 【Mysterious numbers
    题解 P1157 【组合的输出】
    题解 P3955 【图书管理员】
    题解 P2036 【Perket】
    题解 CF837A 【Text Volume】
    题解 CF791A 【Bear and Big Brother】
    题解 CF747A 【Display Size】
    题解 P1332 【血色先锋队】
    题解 P2660 【zzc 种田】
    题解 P4470 【[BJWC2018]售票】
  • 原文地址:https://www.cnblogs.com/fanfan-blogs/p/5601702.html
Copyright © 2011-2022 走看看