Как исправить «Указанный ключ отсутствует в словаре». Веб-сервис Vb.Net - PullRequest
1 голос
/ 01 октября 2019

Мы переходим из базы данных 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, но без результатов

...