Мы переходим из базы данных SIT в рабочую базу данных, после развертывания веб-сервисов vb я выяснил, что MysqlCommands в некоторых случаях не заполняют мой набор данных, и он выдает ошибку «Указанный ключ отсутствует в словаре».
Все просто отлично работает в среде SIT, но когда мы приступаем к работе!
Набор данных не получает записи, когда запрос содержит столбцы, которые не имеют значений charset & Collation, таких какстолбцы даты.
Это означает, что запрос SELECT COUNT(*) from TableX
с одним столбцом даты в TableX даст мне пустой набор данных
conn.ConnectionString = "SERVER=" & Conn_AdresseIP & ";" _
& "DATABASE=" & dataSource_BO & ";" _
& "UID=" & Tuser & ";" _
& "PWD=" & Tpass & ";" _
& "old guids=true;Convert Zero Datetime=true;" _
& "charset=utf8;" _
& "Allow User Variables=True"
file = My.Computer.FileSystem.OpenTextFileWriter("C:\wamp\logs\test2.txt", True)
file.WriteLine("chaine : " & conn.ConnectionString)
conn.Open()
file.WriteLine("Conn opened ")
MyDataAdapter = New MySqlDataAdapter(sSQL, conn)
file.WriteLine("adapterField")
MyDataAdapter.Fill(MyDataSet, "MyTable")
file.WriteLine("dataset filled")
conn.Close()
file.WriteLine("connexion closed")
Я проверил значения наборов данных базы данных и обнаружил некоторые различия:
Набор символов SIT _ *
character_set_client, utf8
character_set_connection, utf8
character_set_database, utf8mb4
character_set_filesystem, binary
character_set_results, utf8
character_set_server, utf8
character_set_system, utf8
character_sets_dir, /usr/share/mysql-8.0/charsets/
Набор символов PROD _ *
character_set_client, utf8mb4
character_set_connection, utf8mb4
character_set_database, utf8
character_set_filesystem, binary
character_set_results, utf8mb4
character_set_server, utf8
character_set_system, utf8
character_sets_dir, /usr/share/mysql-8.0/charsets/
Я пробовал все, как удаление & "old guids=true;Convert Zero Datetime=true;" _
, или & "Allow User Variables=True"
, или даже оставление Charset по умолчанию без указания его как utf8, но без результатов