请问VB.NET能做数据统计和分析吗?

weixin_43405952 2019-06-01 05:15:07
最近在学着用VB.NTE操作数据库,写入、更新、查询、删除都基本明白。查询出来的数据都保存在一种叫DataTable的对象里。但好像没什么方法对这个对象中的数据进行操作,请问是不是应该在写人这个对象之前把数据先整理好呢?那么如果把查询到的数据放入这个对象也没办法做加减乘除、汇总等等运算操作了?
...全文
1337 38 打赏 收藏 转发到动态 举报
写回复
用AI写文章
38 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_43405952 2019-06-22
  • 打赏
  • 举报
回复
看来这个问题还真问对了,好像讨论来讨论去就开始向更深层次的问题延伸了。实现结果的方法很多,很多时候却会涉及到技术效能的问题。
轻鸿万里 2019-06-20
  • 打赏
  • 举报
回复
引用 35 楼 weixin_44029280 的回复:
补充说明下要学数据库的个人理解, 数据库能统计分析上1G的的数据.如果是EXCEL表用透视表分析超过100M的数据会导致电脑半个小时没反应,甚至于直接卡死; 这个是亲身经历的; 最终是换了台配置好的电脑才解决问题;
我有几个客户已经用上了I9CPU,2080显卡了,打开excel依然卡,就是因为文档太大了。要是你真有钱买台那么高配置的主机,还不如买个一千几百块钱的进销存软件两下帮你分析出来。电脑配置双核2G内存这么低的配置都可以完成所有工作了。搞得那么复杂。 数据量大的话,EXCEL数据处理能力与SQLserver那些数据库根本没法比。EXCEL太耗资源了,文件内容直接载入内存,每隔一段时间自动保存文件,数据查询更是从头到尾一行行遍历,最原始的数据处理方式。
tengwei6328 2019-06-19
  • 打赏
  • 举报
回复
根据楼主的描述,完全是没有问题的呀,这是ERP日常操作。 第一步数据获取:通过SQL语句获取数据,进行汇总,平均,计数都操作。 第二步数据加工:对DataTable再进行加工,比如一些特殊的复杂计算,数据库无法实现。结果或写入到的DataTable中,或写入的数据库临时表中。。。 第三步数据展示:.NET自带的Chart图表或第三方的图表工具,也可以导出为Excel再进行加工再贴到PPT中,或者通过一些商业分析工具见此链接:https://www.cnblogs.com/felixzh/p/9094694.html
weixin_44029280 2019-06-17
  • 打赏
  • 举报
回复
是的, 所以大数据就必须用数据库和编程
weixin_43405952 2019-06-17
  • 打赏
  • 举报
回复
引用 37 楼 weixin_44029280 的回复:
引用 36 楼 weixin_43405952 的回复:
[quote=引用 35 楼 weixin_44029280 的回复:]
补充说明下要学数据库的个人理解, 数据库能统计分析上1G的的数据.如果是EXCEL表用透视表分析超过100M的数据会导致电脑半个小时没反应,甚至于直接卡死; 这个是亲身经历的; 最终是换了台配置好的电脑才解决问题;
大哥,你是逗我吧。按你的说法;分店还好,业务单纯。总店估计就要用数据库和编程了。虽然那边平时数据不可能超过1G,但百八十M是有的,一年下来即使去掉数据冗余都快1G了。


你可以弄个200M的EXCEL表试试; 能分析,但你要有耐心等; 电脑要好; 你如何是老企业用下来的老机器;你能分析算我输!
[/quote]EXCEL的方法虽然简单易用,但也太耗费机器性能,数据量少还可以,数据量大就不行了。通过自己写一些小程序,应该能在两者之间达到一定的平衡。无论什么企业,老板都不肯在电脑设备上多花钱的。从这点上来说,哪怕花点心思学编程也是有必要的,不求能有大效能,最起码在一定数据量的情况下能又快又准,立于不败之地。而且这些工作在小企业一般都没有专人负责,请想想一下,店长在一边收银一边忍着卡顿导数据,做报表是何等惨状。
weixin_44029280 2019-06-16
  • 打赏
  • 举报
回复
引用 36 楼 weixin_43405952 的回复:
引用 35 楼 weixin_44029280 的回复:
补充说明下要学数据库的个人理解, 数据库能统计分析上1G的的数据.如果是EXCEL表用透视表分析超过100M的数据会导致电脑半个小时没反应,甚至于直接卡死; 这个是亲身经历的; 最终是换了台配置好的电脑才解决问题;
大哥,你是逗我吧。按你的说法;分店还好,业务单纯。总店估计就要用数据库和编程了。虽然那边平时数据不可能超过1G,但百八十M是有的,一年下来即使去掉数据冗余都快1G了。


你可以弄个200M的EXCEL表试试; 能分析,但你要有耐心等; 电脑要好; 你如何是老企业用下来的老机器;你能分析算我输!
weixin_43405952 2019-06-16
  • 打赏
  • 举报
回复
引用 35 楼 weixin_44029280 的回复:
补充说明下要学数据库的个人理解, 数据库能统计分析上1G的的数据.如果是EXCEL表用透视表分析超过100M的数据会导致电脑半个小时没反应,甚至于直接卡死; 这个是亲身经历的; 最终是换了台配置好的电脑才解决问题;
大哥,你是逗我吧。按你的说法;分店还好,业务单纯。总店估计就要用数据库和编程了。虽然那边平时数据不可能超过1G,但百八十M是有的,一年下来即使去掉数据冗余都快1G了。
weixin_44029280 2019-06-16
  • 打赏
  • 举报
回复
补充说明下要学数据库的个人理解, 数据库能统计分析上1G的的数据.如果是EXCEL表用透视表分析超过100M的数据会导致电脑半个小时没反应,甚至于直接卡死; 这个是亲身经历的; 最终是换了台配置好的电脑才解决问题;
weixin_43405952 2019-06-16
  • 打赏
  • 举报
回复
引用 33 楼 weixin_44029280 的回复:
所谓的数据分析其实跟编程语言没有任何关系, 在于你做出判断需要那些数据如何得到你需要的数据, 针对你的需求你可以在EXCEL表中列明你需要的名目(设计好表格格式),比如月度销售前十的客户, 月度销售金额前十的产品, 月度利润前十的产品/客户; 在编程语言中照搬表格,只在于你如何通过SQL得到你需要的数据(针对数据库而言,可以直接做一个EXCEL表格将基础数据导入数据库就行); 建立临时数据表(或者叫月度报表);按客户,按产品,按利润分别建立数据表, 数据是SQL按客户或者产品的统计汇总过后的数据,降序; 直接取前10行数据显示在窗体表格或者是生成图表; 生产及销售型公司或者是企业基本就这几个需要汇报;

另说明下编程语言有优势的说法,个人认为是需要大量获取非本地数据(比如分析淘宝网销售最好的产品,或者是品牌,关键字等等)的上千万条数据,基本不可能有基础表格数据提供的才会考虑到编程语言的优势;
原来如此,看来真的是我想多了,一直有捷径,却走了弯路。
weixin_44029280 2019-06-16
  • 打赏
  • 举报
回复
所谓的数据分析其实跟编程语言没有任何关系, 在于你做出判断需要那些数据如何得到你需要的数据, 针对你的需求你可以在EXCEL表中列明你需要的名目(设计好表格格式),比如月度销售前十的客户, 月度销售金额前十的产品, 月度利润前十的产品/客户; 在编程语言中照搬表格,只在于你如何通过SQL得到你需要的数据(针对数据库而言,可以直接做一个EXCEL表格将基础数据导入数据库就行); 建立临时数据表(或者叫月度报表);按客户,按产品,按利润分别建立数据表, 数据是SQL按客户或者产品的统计汇总过后的数据,降序; 直接取前10行数据显示在窗体表格或者是生成图表; 生产及销售型公司或者是企业基本就这几个需要汇报;

另说明下编程语言有优势的说法,个人认为是需要大量获取非本地数据(比如分析淘宝网销售最好的产品,或者是品牌,关键字等等)的上千万条数据,基本不可能有基础表格数据提供的才会考虑到编程语言的优势;
weixin_43405952 2019-06-16
  • 打赏
  • 举报
回复
引用 31 楼 weixin_44029280 的回复:
[quote=引用 10 楼 weixin_43405952 的回复:]
好吧,我也说说这个软件的目的。在工作中,我每个月都要对店里的销售数据做分类分析,做成PPT去开会。每次都从公司的系统把单据导出,再手工处理。公司的系统虽然基本是记录项目都有,但用电子表格做分类汇总求和求平均值什么的,都会搞上一两天。而且在这个过程中容易出现错误。于是想做一个小软件,把数据录入后,自动把常用的统计指标都自动算出来,准确率也比纯手动操作电子表格要准确得多。我也想把这个程序在同事里分享一下,故此功能上想尽可能完善一些。
但在具体的操作中发现VB.NET似乎不太擅长做这个(数据统计)。或者说从一开始我的构想就有偏差,在具体的软件结构上存在问题?我心里也没底的。
平时除了VB.NET,还有接触Python、ruby,觉得后两种语言对数据的加工有着很多的“方法”和“函数”可以用。例如Python里有一种叫数集的对象,可以把数据放进去之后,对这个对象做运算。VB.NET这方面的方法好像不怎么强大,当然,也可能是我还没构思好或者未深入VB.NET这门语言吧。到书店里逛了一下,介绍C语言的、jave、python的都不少,VB的不多,网络上好像也不多。哎。



看了你的需求,发现你有点本未倒值, 你的数据能够导入EXCEL 的话,用 一个透视表完全可以生成你需要的PPT基本数据表; 我公司正常使用上100万的ERP依然没有达到EXCEL透视表的全面和灵活; 可以按月度; 按客户,按产品; 我经常分析1-2年上10M的EXCEL数据表; 完全不成问题! 研究下EXCEL透视表表只要半天,你研究VB.NET估计得半年可能达不到你的要求;[/quote]一言惊喜梦中人啊,忘记EXCEL里的函数也十分强大。那么就延伸出一个问题,为什么做数据分析的总要学一两门编程语言和数据库呢?
weixin_44029280 2019-06-16
  • 打赏
  • 举报
回复
引用 10 楼 weixin_43405952 的回复:
好吧,我也说说这个软件的目的。在工作中,我每个月都要对店里的销售数据做分类分析,做成PPT去开会。每次都从公司的系统把单据导出,再手工处理。公司的系统虽然基本是记录项目都有,但用电子表格做分类汇总求和求平均值什么的,都会搞上一两天。而且在这个过程中容易出现错误。于是想做一个小软件,把数据录入后,自动把常用的统计指标都自动算出来,准确率也比纯手动操作电子表格要准确得多。我也想把这个程序在同事里分享一下,故此功能上想尽可能完善一些。
但在具体的操作中发现VB.NET似乎不太擅长做这个(数据统计)。或者说从一开始我的构想就有偏差,在具体的软件结构上存在问题?我心里也没底的。
平时除了VB.NET,还有接触Python、ruby,觉得后两种语言对数据的加工有着很多的“方法”和“函数”可以用。例如Python里有一种叫数集的对象,可以把数据放进去之后,对这个对象做运算。VB.NET这方面的方法好像不怎么强大,当然,也可能是我还没构思好或者未深入VB.NET这门语言吧。到书店里逛了一下,介绍C语言的、jave、python的都不少,VB的不多,网络上好像也不多。哎。



看了你的需求,发现你有点本未倒值, 你的数据能够导入EXCEL 的话,用 一个透视表完全可以生成你需要的PPT基本数据表; 我公司正常使用上100万的ERP依然没有达到EXCEL透视表的全面和灵活; 可以按月度; 按客户,按产品; 我经常分析1-2年上10M的EXCEL数据表; 完全不成问题! 研究下EXCEL透视表表只要半天,你研究VB.NET估计得半年可能达不到你的要求;
weixin_44029280 2019-06-16
  • 打赏
  • 举报
回复
引用 7 楼 MSTOP 的回复:
[quote=引用 6 楼 秋天之落叶 的回复:]
天干物燥,多喝绿豆汤。
个人理解,数据量不大的情况下,怎么分析都可以的;大数据下,要建立数据规则,每天的数据按照一定的规则批量滚入数据仓库,然后分析使用。
直接在几千万几个亿甚至百亿千亿的数据量上直接分析,现在什么语言估计都没戏。

数居仓库是使用预计算,维度和聚合的值在导入时已计算好,所以处理几个亿数据不是问题.
就算是简单的求和求平均,SQL里的SUM,AVG也比在NET里写循环方便和快捷吧.更何况可以使用NET对SQL做扩展存储过程. 这个也在NET里方便多吧.
从理论上,任何语言都可以做统计分析,喜欢的话用汇编也不会有人反对(当前,前提是真懂得汇编.).只要喜欢就好.
[/quote]

看了你的需求,发现你有点本未倒值, 你的数据能够导入EXCEL 的话,用 一个透视表完全可以生成你需要的PPT基本数据表; 我公司正常使用上100万的ERP依然没有达到EXCEL透视表的全面和灵活; 可以按月度; 按客户,按产品; 我经常分析1-2年上10M的EXCEL数据表; 完全不成问题! 研究下EXCEL透视表表只要半天,你研究VB.NET估计得半年可能达不到你的要求;
华芸智森 2019-06-13
  • 打赏
  • 举报
回复
引用 28 楼 轻鸿万里 的回复:
[quote=引用 26 楼 jhonsonzhang 的回复:] 所以,微软的设计理念是正确的,让开发者不用考虑这些具体实现,但MVC的概念是在强化。我回复下华云智森,实际linq to Sql 是个优化的数据访问层,在我多个实践项目中,我发现效率比以前直接使用sql存贮过程要高很多。至于应用程序的开发,使用哪种高级语言根本就无关紧要。vb,c#,php,java,phyton,甚至delphi.我真心觉得差别不大。
linq to Sql没用过,粗略看了下大概原理是把数据表从数据库里映射出来,然后组成一个简单数据库模型进行数据查询,就是不知道数据的实时性怎样,资源占用估计很大吧。 性能是很高,用户不多没问题,用户量大或者操作频繁数据量大的时候,资源占用会怎样? [/quote] 在十多年前,看过这类ORM模型,这类模型就是一个小粒度的缓存.以行为单位.读数据时,最好就是一行一行地读.这样缓存命中率会很高. 现在变成了什么样,没有关注过,因为我一直不用 linq to Sql ,感觉可能变成了类似于内存数据库,不再是单纯的行缓存.对数据库的删除,更新,插入都经过模型,这样来保持缓存和数据库间的强一至保持强一至 ? (如果DBA在查询分析器或第三方修改了数据怎么办? 难道还使用消息通知 ? 我用linq,但从来不用 linq to Sql . 呵呵....
轻鸿万里 2019-06-13
  • 打赏
  • 举报
回复
引用 26 楼 jhonsonzhang 的回复:
所以,微软的设计理念是正确的,让开发者不用考虑这些具体实现,但MVC的概念是在强化。我回复下华云智森,实际linq to Sql 是个优化的数据访问层,在我多个实践项目中,我发现效率比以前直接使用sql存贮过程要高很多。至于应用程序的开发,使用哪种高级语言根本就无关紧要。vb,c#,php,java,phyton,甚至delphi.我真心觉得差别不大。
linq to Sql没用过,粗略看了下大概原理是把数据表从数据库里映射出来,然后组成一个简单数据库模型进行数据查询,就是不知道数据的实时性怎样,资源占用估计很大吧。 性能是很高,用户不多没问题,用户量大或者操作频繁数据量大的时候,资源占用会怎样?
华芸智森 2019-06-13
  • 打赏
  • 举报
回复
linq to Sql 本身就是SQL . 相比传统的直接访问数据库,相当于多了一个内存数据库.所以,linq to Sql本质还是数据库.
threenewbee 2019-06-12
  • 打赏
  • 举报
回复
引用 18 楼 weixin_38473303 的回复:
[quote=引用 12 楼 jhonsonzhang 的回复:]
直接上截图,百万级的数据,毫秒内实时统计。当然我这儿数据库是空的,数据在人家内网服务器上。但实际使用效果看得很清楚。


"百万级的数据,毫秒内实时统计"使用的什么方法?[/quote]

你要明白一个问题,就是百万级别的数据在毫秒级别的时间内全部读取一遍还要统计,在普通的硬件和可以接受的成本上,这是不可能做到的,超过了存储器存取性能的上限。

但是虽然存有百万级别千万级别的数据,但是统计并不需要将所有的数据都读取一遍。相反,他们只需要处理增量的和局部的数据。这些数据其实非常少。比如说csdn要做用户的专家分的排名的统计。他有1000万个用户,他需要把整个数据集都跑一遍么?不需要。他只要每天把每个用户增加的专家分统计一下,和前一天的比较下就能知道每个用户的专家分了。这就叫做处理增量的数据。同时,他只需要统计活跃用户的专家分,而不需要统计根本没有活动的用户,这个就叫做处理局部的数据。
jhonsonzhang 2019-06-12
  • 打赏
  • 举报
回复
所以,微软的设计理念是正确的,让开发者不用考虑这些具体实现,但MVC的概念是在强化。我回复下华云智森,实际linq to Sql 是个优化的数据访问层,在我多个实践项目中,我发现效率比以前直接使用sql存贮过程要高很多。至于应用程序的开发,使用哪种高级语言根本就无关紧要。vb,c#,php,java,phyton,甚至delphi.我真心觉得差别不大。
jhonsonzhang 2019-06-12
  • 打赏
  • 举报
回复
回复楼上,实际数据库里实时统计涉及的数据表有4个,主表的数据量一百二十多万。使用的方法很朴实,就是用的linq to sql。确实是毫秒内实时统计。在行政服务大厅窗口都快使用半年了,没任何问题反馈。
threenewbee 2019-06-12
  • 打赏
  • 举报
回复
对于unstructured/under-indexing/uncompressed的数据,且数据数量达到百万级别,这个是不可能做到毫秒级别,一条记录你算它1kb的数据量,就是GB级别的数据,在毫秒级别哪怕读取一遍,那么需要的存储器传输带宽就是10GBps级别的,这个显然超过了物理上线。

好比让你去翻一个字典,找到一个汉字,你说我能很短时间找到,是因为它有目录,然后你说我不看目录,我也能很快找到,那是因为它是按照顺序排列的,所有的数据库,如同所有的字典一样,都有特定的存储结构,这是你能快速处理数据的前提。但是随便给你一本你从来没有看过的书,让你找一个字出来,你看看是不是需要花很长时间。

我们讨论的是处理数据,而不是用数据库处理数据。你会使用linq,这个很好,但是一定要把linq背后的原理搞清楚。
加载更多回复(18)

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧