Деинсталирайте MySql.Data и го заменете с MySqlConnector .
(Разкриване:аз съм репортерът на бъг в MySql, който открихте и основният сътрудник на MySqlConnector .)
Освен че поправя този проблем и много други грешки , MySqlConnector добавя истинска поддръжка за асинхронен I/O и подобрения в производителността.
Ако не искате да превключвате библиотеки, малко известна функция на GetBytes
(поддържа се както от MySql.Data, така и от MySqlConnector) е предаването на null
buffer връща необходимата дължина, така че не е необходимо да го кодирате:
// 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);