Во-первых, включите Option Strict согласно моему комментарию.
Если строк нет, ваш For Each row
не будет работать, поэтому нет необходимости проверять RowCount
.
Не объявляйте свои переменные накопления внутри l oop. Они будут новой переменной на каждой итерации. Ваш внутренний l oop проходит через все ряды, поэтому, конечно, вы получаете сумму всех. Устранить внутренний l oop.
Я понятия не имею, что такое Reset Text()
. У метода не может быть пробела в его имени. В любом случае, если вы добавляете новое значение, очищать старое не обязательно. Если вам нужно очистить, установите ""
. Не обновляйте свои ярлыки до тех пор, пока после l oop. Обновлять пользовательский интерфейс на каждой итерации бесполезно. Он будет go слишком быстрым для пользователя, чтобы увидеть его, и замедляет код.
В общем, вам нужно делать сравнения арифметических c или числительных c с типами числительных c и установить .Text
свойства с типом String
. Метод Val
должен быть заменен несколькими методами. net. .Parse
, .TryParse
, Convert.
и в vb CInt
, CDec
, et c.
Private Sub Getvalue()
Dim pending As Double = 0
Dim received As Double = 0
Dim finalAmount As Double = 0
For Each row As DataGridViewRow In DataGridView1.Rows
Dim isSelected As Boolean = CBool(row.Cells(0).Value)
If isSelected Then
pending += CDbl(row.Cells(15).Value)
received += CDbl(row.Cells(14).Value)
finalAmount += CDbl(row.Cells(12).Value)
End If
Next
Label19.Text = pending.ToString
Label20.Text = received.ToString
Label24.Text = finalAmount.ToString
If pending <= 0 Then
Label18.Text = ""
Else
Label18.Text = (finalAmount - pending).ToString
End If
End Sub
EDIT Обычно вы бы купили , Покупка будет иметь таблицу в базе данных с полями, такими как номер покупки, дата, клиент и т. Д. c. У вас будет другая таблица с деталями покупки. Таблица подробностей будет иметь такие поля, как номер детали (первичный ключ), номер покупки внешнего ключа, который должен совпадать с записью в таблице покупок, идентификатор товара и цена. Когда клиент хочет вернуть товар или предметы из покупки. Вы должны ввести номер покупки и заполнить свою сетку из таблицы сведений о покупке.
Select * From PurchaseDetails Where purchaseNumber = @purchaseNumber
Поставьте галочку напротив каждого возвращенного товара и суммируйте столбец цены.
Покупка Таблица
PurchaseID | CustomerID | Дата
Таблица сведений о покупке
DetailID | PurchaseID | ItemCode | ItemPrice