Заполните GataGridView несколькими таблицами в Mysql c# - PullRequest
0 голосов
/ 27 января 2020

Я хочу отобразить данные в элементе управления DataGridView, эти данные будут принимать значения из 3 таблиц (boq_table, submittal, summary), таких как;


  • itemNum || descriptionOfWork || unit || contractualQuantity || priceNum из boq_table .

  • executedQuantLastSummary || priceLastWorks || executedQuantBetw2Sum из сводка .

  • priceCurrentWorks из представление .


И есть столбцы two, которые должны заполняться после процесса вычисления в двух полях, отображаемых в представлении DataGrid. Можно ли выполнить этот расчет автоматически после заполнения данных в dataGridView или это должно быть до заполнения?

Я пытаюсь использовать Full external в приведенном ниже коде, но он не работает.

adapter = new MySqlDataAdapter("SELECT ubc.boq_table.itemNum AS '1', ubc.boq_table.descriptionOfWork AS '2', ubc.boq_table.unit AS '3', ubc.boq_table.contractualQuantity AS '4', ubc.boq_table.priceNum AS '5' , ubc.summary.executedQuantLastSummary AS '6', ubc.summary.priceLastWorks AS '7 ', ubc.summary.executedQuantBetw2Sum AS '8' , ubc.submittal.priceCurrentWorks AS '9 '  from ubc.boq_table FULL OUTER JOIN ubc.summary ON ubc.boq_table.itemNum = ubc.submittal.itemNum = ubc.summary.itemNum where projectName='" + projectNameText.Text + "' And itemNum= '" + textBox3.Text + "' ", connection);

            table = new DataTable();
            adapter.Fill(table);
            dataGridView1.DataSource = table;

1 Ответ

0 голосов
/ 27 января 2020

Чтобы сделать полное внешнее соединение для 3 таблиц

SELECT t1.value, t2.value, t3.value
FROM t1 LEFT JOIN t2 ON t1.value = t2.value
        LEFT JOIN t3 ON t1.value = t3.value
UNION ALL
SELECT t1.value, t2.value, t3.value
FROM t2 LEFT JOIN t1 ON t1.value = t2.value
        LEFT JOIN t3 ON t2.value = t3.value
WHERE t1.value IS NULL
UNION ALL
SELECT t1.value, t2.value, t3.value
FROM t3 LEFT JOIN t1 ON t1.value = t3.value
        LEFT JOIN t2 ON t2.value = t3.value
WHERE t1.value IS NULL AND t2.value IS NULL

В качестве альтернативы этому:

SELECT t1.value, t2.value, t3.value
FROM t1 FULL OUTER JOIN t2 ON t1.value = t2.value
        FULL OUTER JOIN t3 ON t1.value = t3.value

Ссылка из сообщения SO: Полное внешнее MySQL

И для загрузки данных в Dataatable:

public void LoadData()
{
    DataTable NewDataTable = new DataTable();

    string FullOuterQuery = "Your reworked query";
    MySqlDataAdapter MySQLDA= new MySqlDataAdapter(FullOuterQuery, connection);
    MySQLDA.Fill(NewDataTable);
    MySQLDA.Dispose();
    dataGridView1.DataSource = NewDataTable;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...