作者forewero (Utor)
看板C_Sharp
标题Re: [问题] 请问有办法将资料库查询结果转成阵列吗?
时间Tue Jan 15 22:53:04 2019
※ 引述《a828203 ()》之铭言:
: 各位新进晚安,
: 先介绍环境
: 开发工具:VS 2017、C# Windows Form APP、MySQL
: 本鲁想利用datareader把资料库的查询结果转成阵列(搭配 For Loop),
: 然後做垂直运算,输出结果类似下图:
: https://i.imgur.com/sas835x.png
: 但是资料表内不一定都有值,
: 所以会出现空值的例外状况...
: 然後就无法执行了 Q^Q
: 阵列规格大约是 11列 X 4栏,应该不会造成记忆体多大负担吧?
: 还是说 SQL 的 SELECT 语法可以做到垂直运算?
: 或是有其他更好的方法?
: 先谢谢各位先进的解答
刚好在试MySql+Dapper,顺手回一下这个
第一点,如果懒的话
其实SQL本身就有sum的函数了
只要下select sum({{column_name}}) form {{table_name}};
就可以得到sum值
然後透过Rows.add的方式加到datareader里面
更可以搜寻完用union的方式直接串起来
这是从DB面的方式去处理
从程式的话,我倾向建Model
首先table如下:
mysql> select * from demo;
+------+--------+
| id | number |
+------+--------+
| 1 | 20 |
| 2 | 10 |
| 3 | 15 |
| 4 | NULL |
+------+--------+
这个table随便建的
Code的部分:
https://rextester.com/KVNM9426
主要是用dapper直接去转强型别
如果要用datareader可不可以?也行,我记得网路上蛮多sample的。
至於DataGridView本身有没有相关的方法我就不知道了
很久没拉控制项了XD
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 61.70.210.104
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_Sharp/M.1547563989.A.90F.html
※ 编辑: forewero (61.70.210.104), 01/15/2019 22:59:41
1F:推 dseven: Dapper只要下好sql转强型别来用即可 不需要用到datareader 01/16 21:27
2F:→ dseven: conn.Query<T>("sql"); 01/16 21:28
3F:→ dseven: DataGridView应该可以将List<T>物件丢进去当DataSource 01/16 21:29
4F:→ dseven: 很久没用 我也忘了XDD 01/16 21:29
DataGridView可以丢List<T> object进去,因为我的sample code就是这样写的XD
※ 编辑: forewero (61.70.210.104), 01/16/2019 23:08:37