У меня проблема с суммированием столбца сумм в долларах в DataTable с VB. Я пробовал два разных способа, приводящих к двум различным ошибкам, которые я не уверен, как их устранить. Прежде чем перейти к двум путям, я попытался решить проблему, вот настройка:
Я импортирую файл с разделителями табуляции в DataTable. Заголовки автоматически заполняются данными из первой строки в файле.
DataGridView, который отображает таблицу данных, называется DGV_detail.
Столбец в DGV_detail, который я пытаюсь суммировать, находится в столбце 3 и называется «Значение до даты». Этот столбец полон значений суммы в долларах, подобных: $ 10,00 со знаком доллара и всем прочим.
Я также объявляю переменные представления и выполняю некоторые вычисления при нажатии кнопки.
Вот мой первый подход:
For i As Integer = 0 To DGV_detail.Rows.Count() - 1 Step +1
interestPaidToAccounts = interestPaidToAccounts + DGV_detail.Rows(i).Cells(3).Value
Next
Когда я пробую этот подход, я получаю следующую ошибку:
An unhandled exception of type 'System.InvalidCastException' occurred in Microsoft.VisualBasic.dll
Conversion from string "" to type 'Double' is not valid.
Другие методы, которые я пытался использовать для решения этой проблемы, были (Для справки: в этих примерах я создал локальную переменную для функции button_click, которая присвоила BGV_detail.DataSource равный dataTable1):
Dim sumObject = dataTable1.Compute("Sum(Convert(Value-to-date, 'System.Decimal'))", "[Value-to-date] IS NOT NULL")
и
Dim sumObject As Decimal = dataTable1.Compute("Sum(Value-to-date)", "")
, которая вызвала следующую ошибку:
Expecting a single column argument with possible 'Child' qualifier.
На данный момент я довольно растерян, поэтому, независимо от того, что сообщество считает лучшим способом решения этих проблем, я открыт.
При необходимости могу предоставить дополнительную информацию! :)
Заранее спасибо за помощь!