2017-04-18 118 views
-2

enter image description here基于潮头ID的C#

如何总结datagridview的值,我试图让使用C#字典我的DataGridView的总结。但它只支持一个键和值。

ID | Weight 
301 | 75Kg 
302 | 80Kg 
302 | 80Kg 
301 | 43Kg 
304 | 600Kg 

结果应该是这样的DataGrid中查看:

ID | Qty | Weight 
301  2  118Kg 
302  2  160Kg 
304  1  600Kg 

我只能得到ID和数量像上面。

Dictionary<string, KeyValuePair<int, decimal>> dic = new Dictionary<string, KeyValuePair<int, decimal>>(); 
 

 
       string cellValue = null; 
 
       decimal weight = 0; 
 
       for (int i = 0; i <= selecteddgv.Rows.Count - 1; i++) 
 
       { 
 
        if (!selecteddgv.Rows[i].IsNewRow) 
 
        { 
 
         cellValue = selecteddgv[1, i].Value.ToString(); 
 
         weight = Convert.ToDecimal(selecteddgv[5, i].Value); 
 
         if (!dic.ContainsKey(cellValue)) 
 
         { 
 
          dic.Add(cellValue, new KeyValuePair<int,decimal>(1, weight)); 
 
         } 
 
         else 
 
         { 
 
          dic[cellValue] += new KeyValuePair<int,decimal>(1, weight)); 
 

 
         }

我都试过,但说到在其他更新阻止它在“+ =”触发一个错误

,并请帮助我如何显示它成使用KeyValuePair后的datagridview。

+1

我不认为需要SQL标记。请删除它 – Biswabid

+1

问题不清楚? –

+0

你想修改内存中的数据吗?还是想要一个适合的SQL查询?告诉我们您目前如何将数据存入您的网格 – Marco

回答

0

如果你只是要求在SQL那么这很简单:

select id,count(*), sum(Weight) 
from [table] 
group by id; 
0

那么有没有关系,他们只需要一个键和值的字典。作为一种“不理想”的解决方案,您可以创建一个嵌套字典。这本词典的键持有的ID和值将是一个

KeyValuePair<int, string> 

是“诠释”是“数量”和“弦”是“重量”

你过所有字典对象将是一个物体做出来的

Dictionary<int, KeyValuePair<int, string>> myDict = new Dictionary<int, KeyValuePair<int, string>>();