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 ...但对于加载它们的所有值.请问我该怎么做?谢谢。

C# SqlReader issue

假设您还想保留原始值,则可以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