2014-09-17 2 views
0

У меня есть программа vb.net, которая запускает хранимую процедуру в базе данных. После того, как я создаю набор данных, я просматриваю таблицу внутри набора данных, ища определенную информацию. Я использовал операторы Select Case для поиска правильной информации. Проблема, с которой я сталкиваюсь, я не могу понять, как отображать мои результаты как «сумму». Я знаю, что это потому, что я использую "для каждого", но я не уверен, как назначить "Результат" в ds.tables (0) .RowsКак добавить значения из нескольких Выберите случаи

Код:

For Each Result As DataRow In ds.Tables(0).Rows 
      Select Case Result("Report") 
       Case "TOTALS" 
        Select Case Result("Description") 
         Case "Coupons", "Coupons Tax-Free", "GC" 
          MsgBox(Result("netAmt")) 
        End Select 

      End Select 
     Next 

Как кодированной I» m принимает 3 окна сообщений. Первый из них:

"15" 

Второй:

"10" 

Третье:

"5" 

Я бы предпочел, чтобы увидеть сумму всех 3 найдено:

"30" 

Как я могу получить их сумму, имея в виду ее Возможно, что один из 3 возвращается как 0 в некоторых случаях

+0

Так как вы делаете это в VB.NET, почему вы не просто просуммировать цифры сами? –

+0

Где находится 'ds.Tables (0)' from? Если это база данных, лучше всего позволить агрегатору базы данных выполнить агрегацию. – Neolisk

+0

Это данные. Я буду использовать это в конце концов, чтобы вытащить 10 различных частей информации. Если я позволю движению db к агрегации, мне придется написать 10 разных запросов, используя одну и ту же хранимую процедуру. – Shmewnix

ответ

2

требуется дополнительная переменная, которая будет хранить сумму, например:

Dim numberOfStudents As Integer = 0 

Тогда вместо отображения текущего чистую сумму добавить к текущая сумма:

sum = sum + FoundRow("netAmt") 

Для упрощения я предположил, что FoundRow возвращает число. Однако, если он возвращает, например, строку, вам придется проанализировать ее следующим образом: Integer.Parse(FoundRow("netAmt")).

Наконец, после того, как для каждого цикла отображения результата:

MsgBox(sum) 
+0

Это замечательно. Я использовал вашу идею SUM – Shmewnix

Смежные вопросы