У меня есть приложение, которое использует функцию datasource
для вывода строк на datagridview
dim query1 as string = "Select * from trades"
Source1.DataSource = GetData(query1)
With Me.DGVTrades
.DataSource = Source1
End With
Когда я запускаю приложение на сервере MySQL
размещенном в windows 10
код выше работает и заполняет мое datagridview
. Однако он не работает для сервера MySQL
размещенного на ubuntu 18.04
.
Базы данных и версии сервера MySQL (8.0.11) одинаковы для обеих ОС, так как я использовал один и тот же файл дампа для импорта данных на обоих серверах.
Вопрос: Что может вызвать эту проблему?
Обновление. Существует еще один запрос, который использует ту же строку соединения, которая заполняет другой DGV, используя тот же метод, о котором говорилось выше, и этот, похоже, работает.
Поговорив с Терри, я понял, что проблема заключается в запросе, когда я запускаю запрос с помощью Workbench в MySQL, он работает на сервере Windows, но не на сервере Ubuntu
Я обнаружил, что в именах таблиц MySQL есть некоторая чувствительность к регистру на сервере Ubuntu. Один из запросов в моем коде написан с заглавными буквами в имени таблицы, поэтому он не работает в MySQL на Ubuntu. Однако MySQL в окнах, похоже, более прощает об этом и принимает имена таблиц как есть.
"Как имена таблиц и баз данных хранятся на диске и используются в MySQL, зависит от системной переменной lower_case_table_names. Lower_case_table_names может принимать значения, указанные в следующей таблице. Эта переменная не влияет на чувствительность к регистру идентификаторов триггеров. В Unix значение по умолчанию of lower_case_table_names равно 0. В Windows значение по умолчанию равно 1. На macOS значение по умолчанию равно 2. " <--Source → https://dev.mysql.com/doc/refman/8.0/en/identifier-case-sensitivity.html