Odinstaluj MySql.Data i zastąp go MySqlConnector .
(Ujawnienie:jestem reporterem Znalezionego przez Ciebie błędu MySql oraz główny współtwórca MySqlConnector .)
Oprócz naprawienia tego problemu i wielu innych błędów , MySqlConnector dodaje prawdziwą obsługę we/wy asynchronicznej i poprawę wydajności.
Jeśli nie chcesz przełączać bibliotek, mało znana funkcja GetBytes
(obsługiwane zarówno przez MySql.Data, jak i MySqlConnector) polega na tym, że przekazywanie w null
bufor zwraca wymaganą długość, więc nie musisz jej kodować na stałe:
// get the length of the column and allocate a buffer
var length = dbDataReader.GetBytes(0, 0, null, 0, 0);
var passwordHash = new byte[length];
// fill the buffer from the column
dbDataReader.GetBytes(0, 0, passwordHash, 0, passwordHash.Length);