C# SqlReader issue
本文关键字:issue SqlReader | 更新日期: 2023-09-27 18:31:14
我是第一次在这个论坛上发帖。 我真的希望我能找到一些帮助.我正在做的是加载...来自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 ...但对于加载它们的所有值.请问我该怎么做?谢谢。
假设您还想保留原始值,则可以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);
}
只需将变量放在循环之外并使用 += 运算符
decimal Value = 0;
sqlConnection2.Open();
insertCommand2.ExecuteNonQuery();
SqlDataReader reader2 = insertCommand2.ExecuteReader();
if (reader2.HasRows)
{
while (reader2.Read())
{
Value += reader.GetDecimal(0);
}
}
将 sql 更改为
Select Sum(Value) from DatabaseA.dbo.Values
然后
decimal Value = (decimal)insertCommand2.ExecuteScalar();
您可以使用
SQL SUM
函数。看看 http://technet.microsoft.com/en-us/library/ms187810.aspx