我是第一次在这个论坛发帖。我真的希望能找到一些帮助。 我正在做的是从 SQL 加载... 1000值(示例),我做得很好。
查询例如是:Select Value from DatabaseA.dbo.Values
“价值”==>十进制(10,2)
sqlConnection2.Open();
insertCommand2.ExecuteNonQuery();
SqlDataReader reader2 = insertCommand2.ExecuteReader();
if (reader2.HasRows)
{
while (reader2.Read())
{
decimal Value = reader.GetDecimal(0);
这应该可以正常工作。但我想做的就是在所有人身上做+ 例如,第一个值= 16,第二个= 28,第三个:78
我想制作16 + 28 + 78 ......但是对于所有加载它们的值。 我该怎么办? , 谢谢 。
答案 0 :(得分:3)
假设您也希望保留原始值,则可以使用List<decimal>
并累计总计。
List<decimal> totals = new List<decimal>();
然后在你的while循环中:
totals.Add(Value);
然后您可以通过以下方式返回运行总计:
var runningTotal = totals.Sum();
如果您不想要原始值,可以使用:
decimal value;
while (reader2.Read())
{
value += reader.GetDecimal(0);
}
答案 1 :(得分:2)
只需将您的变量置于循环之外并使用+= operator
decimal Value = 0;
sqlConnection2.Open();
insertCommand2.ExecuteNonQuery();
SqlDataReader reader2 = insertCommand2.ExecuteReader();
if (reader2.HasRows)
{
while (reader2.Read())
{
Value += reader.GetDecimal(0);
}
}
答案 2 :(得分:1)
将sql更改为
Select Sum(Value) from DatabaseA.dbo.Values
然后
decimal Value = (decimal)insertCommand2.ExecuteScalar();
答案 3 :(得分:0)
您可以使用SQL SUM
函数。看看http://technet.microsoft.com/en-us/library/ms187810.aspx