Kim Gabinete Ответов: 1

Datagridview: как я могу скопировать часть значения ячейки выбранной строки из datagridview в другой datagridview?


у меня есть 4 столбца в первом datagridview, который является dgvProducts:
item id
item name
price
category


и 4 колонки также на мой 2-й элемент назван dgvCart:
item id
item name
price
quantity


когда ряд в dgvProducts при нажатии кнопки появится диалоговое окно, которое предложит им, сколько они собираются заказать в этом конкретном продукте.. в этом диалоговом окне есть метка, txtbox(txtQuantity) и кнопка(Добавить в корзину). значения в 1-й, 2-й, 3-й ячейках выбранной строки dgvProducts копируются в 1-ю, 2-ю и 3-ю ячейки dgvCart, а значение для 4 - й ячейки dgvCart будет получено из txtQuantity.

я использовал этот код для привязки данных из доступа к БД к dgvProducts:
Dim X As New OleDb.OleDbConnection("Provider = microsoft.jet.oledb.4.0; data source = SourceFile.mdb")
Dim Y As New OleDb.OleDbDataAdapter("Select * from tbkProducts", X)


я создаю систему заказа хлебобулочных изделий.

dgvProducts подключается к БД MS Access.
dgvCart быть пустой. (просто есть столбцы, созданные с помощью свойства designer)

я попробовал использовать приведенный ниже код, но он копирует все значения ячеек в выбранной строке. и только первая строка копируется в другой datagridview. пожалуйста, im новое в использования datagridview мне очень нужна помощь. что я должен изменить в коде?
Заранее спасибо.

Что я уже пробовал:

Private Sub dgvProducts_CellMouseClick(sender As Object, e As DataGridViewCellMouseEventArgs) Handles dgvProducts.CellMouseClick
        If dgvCart.Columns.Count = 0 Then
            For Each dgvc As DataGridViewColumn In dgvProducts.Columns
                dgvCart.Columns.Add(TryCast(dgvc.Clone(), DataGridViewColumn))
            Next
        End If

        Dim row As New DataGridViewRow()
        For i As Integer = 0 To dgvProducts.Rows.Count = 1
            row = DirectCast(dgvProducts.Rows(i).Clone(), DataGridViewRow)
            Dim intColIndex As Integer = 0
            For Each cell As DataGridViewCell In dgvProducts.Rows(i).Cells
                row.Cells(intColIndex).Value = cell.Value
                intColIndex += 1
            Next
            dgvCart.Rows.Add(row)
        Next

    End Sub

Maciej Los

Это зависит от способа привязки данных...

Kim Gabinete

у вас есть идея, как это закодировать? возможно ли, если я получу индекс нужного мне значения ячейки в выбранной строке первого dgv? поставить его на 2-й ДГВ?

Maciej Los

как это закодировать? - как я уже говорил, это зависит от обстоятельств... Не могли бы вы рассказать мне, как вы связываете данные с DataGridView? Воспользуйся Улучшить вопрос виджет для обновления вашего вопроса.

Kim Gabinete

я обновил свой вопрос, пожалуйста, проверьте его.

1 Ответов

Рейтинг:
2

Maciej Los

Ну, вы не указали метод, который используете для привязки данных. Тем не менее...

Главное-это разделение операций с пользовательским интерфейсом и данными

Проверить это:
Скопируйте строку datagridview в другой datagridview[^]
Копирование данных одного datagridview в другой datagridview в VB.NET[^]