工大助手--数据读取

工大助手--数据读取

实现功能


 

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

 

原文地址:https://www.cnblogs.com/fanfan-blogs/p/5601702.html