工大助手--数据读取
实现功能
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类中封装好了很多的方法,所以操作起来非常的方便。
时间: 2024-11-25 08:40:17