2017-02-02 7 views
0

Я создал тележку с помощью DataGridView и на кнопку Добавить в корзину У меня есть этот код:Добавить количество, если элемент DataGridView уже существует

Dim a As Integer 
Dim total As Integer 
Dim b As Integer 
a = TextBox2.Text 
b = NumericUpDown56.Value 
total = a * b 
ShoppingCart.DataGridView1.Rows.Add(Me.Label11.Text, Me.TextBox2.Text, Me.NumericUpDown56.Value, total) 
Me.Hide() 
ShoppingCart.Show() 

Как я могу добавить количество, если я заново добавил тот же пункт?

+0

Добро пожаловать в SO. Пожалуйста, примите [тур]. В попытке прояснить вопрос, говорите ли вы, что вы добавили элемент в «DataGridView», и теперь вы хотите узнать, как обновить количество этого элемента? Кроме того, я бы посмотрел на то, чтобы дать вашим управлениям лучшие имена. 'Label11',' TextBox2' и 'NumericUpDown56' для нас абсолютно ничего не значит, и это только вызовет у вас больше горя. – Bugs

ответ

0

Это немного трудно ответить на этот вопрос, не зная совсем то, что текстовое поле и updowncounter делать ... но если вы только ожидать, что счетчик Updown изменить ...

Вы можете перебирать данных и охоты на тот же самый текст в первой колонке

Dim a As Integer 
    Dim total As Integer 
    Dim b As Integer 
    a = TextBox2.Text 
    b = NumericUpDown56.Value 
    total = a * b 
    Dim Updated As Boolean 
    For Each row As DataGridViewRow In ShoppingCart.DataGridView1.Rows 
     If CType(row.Cells(0).Value, String) = Me.Label11.text Then 
      row.Cells(2).Value = CType(row.Cells(0).Value, Integer) + b 
      row.Cells(3).Value = CType(row.Cells(3).Value, Integer) + total 
      Updated = True 
      Exit For 
     End If 
    Next 
    If Not Updated Then ShoppingCart.DataGridView1.Rows.Add(Me.Label11.Text, Me.TextBox2.Text, Me.NumericUpDown56.Value, total) 
    Me.Hide() 
    ShoppingCart.Show() 

Хотя лично я бы связать DataGridView к из списка (Т) (т = класс, который сохраняет свои свойства) и поиск/изменить, что вместо того, чтобы, затем пересвяжите список.

Что-то вдоль этих линий ...

Private Class cls_Cart_Item 
    Public Property Item_Name As String 
    Public Property Whatever_TExtbox2_IS_SUpposed_to_be As Integer 
    Public Quantity As Integer 
    Public Sub New(wName As String, wWhatever_TExtbox2_IS_SUpposed_to_be As Integer, wQuantity As Integer) 
     Item_Name = wName 
     Whatever_TExtbox2_IS_SUpposed_to_be = wWhatever_TExtbox2_IS_SUpposed_to_be 
     Quantity = wQuantity 
    End Sub 
    Public ReadOnly Property Total As Integer 
     Get 
      Return Whatever_TExtbox2_IS_SUpposed_to_be * Quantity 
     End Get 
    End Property 
End Class 
Private Cart As New List(Of cls_Cart_Item) 

Private Sub Add_Or_Update() 
    ShoppingCart.datagridview1.datasource = Nothing 
    Dim a As Integer 
    Dim total As Integer 
    Dim b As Integer 
    a = TextBox2.Text 
    b = NumericUpDown56.Value 

    Dim Item As New cls_Cart_Item = Cart.Find(Function(x) x.Item_Name = Me.Label11.Text) 
    If Item Is Nothing Then 
     Cart.Add(New cls_Cart_Item(Me.Label11.Text, a, b)) 
    Else 
     Item.Quantity += b 
    End If 
    Me.Hide() 

    ShoppingCart.datagridview1.datasource = Cart 

End Sub 

Хотя это трудно сказать, из вашего вопроса, где этот код поступает из относительно daraviewgrid.