导航
  • 主页
  • C#综合技术
  • C#互联网桌面应用
  • AppLauncher
  • WinForm
  • WPF
  • 问答

c#关于把Excel当数据库进行操作的问题

迷路的指南针 南昌航空大学 2013-04-05 03:33:58
小菜最近在做毕设,要求对学生的成绩(Excel表格的形式保存)进行统计,通过种种考虑,觉定把Excel当成数据库来开发,但是,现在碰到一个问题,就是在总成绩一栏中,老师不一定写的是分数,还有可能写“缺考”,“缓考”,“退学”等字眼,但是这些字眼有不只是这3个,老师又不允许修改这些单元格,就是Excel表格里面的信息不能改动,这就会造成统计人数,用AVG数据库语句等会出问题。现在想问问大神有没有什么解决方案,我的意思是有没有除了生成一个临时的EXCEL文件来存放修改掉这些字眼的数据外的其他办法。
...全文
218 点赞 收藏 14
写回复
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
我可以把要统计的数据封装进一个类里面,然后再对读取的数据经行try{}catch{},每次发生异常就将这个类里面对应的成员变量加一。这样对于一下异常既不会影响程序的继续执行又可以继续执行下去了。
回复
好东西啊果断顶起!
回复
引用 12 楼 wddw1986 的回复:
如果你是在实际项目中做这么麻烦的事情,估计项目经理会疯掉的。
我也觉得会疯,不过,我想项目经理肯定不会这样分配任务给我吧。 而且我就是觉得麻烦才发帖,找最佳的解决方案。 最大的问题是小菜主修的软件测试方向,C#属于可视化编程就是.net编程方向的,小菜现在就类似于边自学,边做啊。
回复
cheng2005 2013-04-06
如果你是在实际项目中做这么麻烦的事情,估计项目经理会疯掉的。
回复
gdhwj 2013-04-05
写多了,代码自然就少了
回复
引用 5 楼 flai 的回复:
定义成字符型字段,如果存储的内容为数字则是分数,否则分数为0,并显示相应的原因。
我的代码是这样的 strConn ="Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " + textBox1.Text + ";Extended Properties='Excel 8.0;HDR=False'";这是连接池的连接语句, string sql = "SELECT INT((总评)/10), COUNT(总评) FROM [Sheet1$] GROUP BY INT((总评)/10)"; 这是进行统计的语句,如果把Excel语句中的'总评'这个字段当成字符串来进行操作,然后用Int32.tryParse()试图解析这个对象,能找到就是不是数字的字段,我在2天前就试过了。但是我上面的sql语句就没有用了。如果能修改到数据源的话,这些问题都解决了。但是老师目前的话,不让我动数据源。这是一个伤脑筋的事,从上个礼拜起我就考虑怎么解决,然后在本周2跟老师沟通的时候,我就问能不能动数据源,通过代码遍历Excel该列下非数字的字段,然后相应的修改为-1等值,但是老师目前否决了这个提议。
回复
引用 6 楼 sp1234 的回复:
引用 3 楼 www1157763637qqcom 的回复:带我的老师说:你是学生,代码要尽量简短。所以这个方案被我否决了。 你的借口如果能让你做出程序也就罢了。如果是成事不足败事有余的借口,你的老师也会哭的。
这个真不是我的借口,如果我按照那样来编程序的话,我就不用这么麻烦的各种找资料,不但你听着觉得不可能,连我都觉得不可能,而且从性能上来讲,用以个循环来讲的话,系统的开销会小。不过如果最后要是找不到方法,那就只能找老师了。你想:如果我是真想偷懒的话,这个程序早就出钱找别人帮我做了。是吧。我知道,您是想教我,做软件没有捷径。但是我也是说,找到更好的方法,就行对于一组数据进行排序,用的算法不一样,性能也就不一样了。
回复
这么简单的东西,方法有很多,但是其实更总要地是一个实践者的“现在就实现”的态度。
回复
引用 3 楼 www1157763637qqcom 的回复:
带我的老师说:你是学生,代码要尽量简短。所以这个方案被我否决了。
你的借口如果能让你做出程序也就罢了。如果是成事不足败事有余的借口,你的老师也会哭的。
回复
flai 2013-04-05
定义成字符型字段,如果存储的内容为数字则是分数,否则分数为0,并显示相应的原因。
回复
回复
to 2 楼:我也想过用你说的用一个循环,然后对读取的数据进行统计:你看一下我要统计的数据,你会发现如果不直接用SQL的统计语句,而是用上面的方法,代码量很大,带我的老师说:你是学生,代码要尽量简短。所以这个方案被我否决了。
回复
SQL77 2013-04-05
不可以读出来后判断是否是数字? EXCEL是能处理很多东西.但是符合你的情况
回复
活人做活事啊 活人做活事啊 活人做活事啊
回复
发动态
发帖子
C#
创建于2007-09-28

10.4w+

社区成员

.NET技术 C#
申请成为版主
社区公告

全世界最好的语言,没有之一.