Как обновить привязку datagridview в vb.net или C #? - PullRequest
1 голос
/ 17 июня 2011

Я создал две таблицы (FIRSTtable и SECONDtable) в базе данных mysql и две связанные таблицы.

ПЕРВАЯ таблица, имеет столбцы (product_id (pK), product_name). Вторая таблица имеет столбцы (machine_id, production_date, product_id (fK), product_quantity, operator_id).

Отношения между двумя таблицами с использованием столбца product_id с UpdateCascade и DeleteCascade. Оба отношения работают нормально, когда я пытаюсь с помощью сценария sql. Предположим, что я удаляю все product_id в ПЕРВОЙ таблице, все существующие данные в ВТОРОЙ таблице будут удалены.

Обе эти таблицы отображаются в виде таблицы. Когда я удаляю все данные в таблице FIRST, все строки в таблице FIRST представления данных будут удалены, а также будут удалены данные в mysql таблицы FIRST.

Я пытаюсь открыть базу данных mysql, данные во ВТОРОЙ таблице также удалены, проблема, почему представление, которое во втором представлении данных не может быть удалено, все еще сохраняет предыдущие данные? Как обновить привязку datagridview в vb.net или C #? Спасибо.

    With Me.SECOND_DataGridView
        .Datasource = Nothing  ' tried this, but failed.
        .DataSource = MyDataset.Tables("SECOND_table")
    End With

1 Ответ

2 голосов
/ 17 июня 2011

Я полагаю, что вы столкнулись с тем, что MySQL Engine фактически выполняет каскадное удаление для вас.

Когда вы запрашиваете данные MySQL в локализованном C # «DataTable» (таблица в DataSet), эти данные теперь находятся в памяти и не связаны напрямую с данными на диске.Когда вы собираетесь удалить строки в «памяти» версии первой таблицы данных, это приводит к тому, что удаления происходят на СЕРВЕРЕ для таблицы второго уровня, а НЕ непосредственно обновляет вашу версию таблицы данных 2 в памяти.

При этом вам, вероятно, придется сделать одно из двух ... Запрашивать весь набор данных (таблицы один и два), чтобы получить полное обновление того, что ЕЩЕ В реальной базе данных ... ИЛИ ...Поскольку вы вызываете удаление из таблицы один из набора данных, вам нужно будет выполнить обработку удаления в локальном файле данных TWO, а также для его синхронизации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...