sql >> Base de Datos >  >> RDS >> Mysql

MySqlDataReader.GetStream() lanza IndexOutOfRangeException

Desinstale MySql.Data y reemplácelo con MySqlConnector .

(Divulgación:soy el reportero del error de MySql que encontraste y el colaborador principal de MySqlConnector .)

Además de solucionar ese problema y muchos otros errores , MySqlConnector agrega verdadera compatibilidad con E/S asíncrona y mejoras de rendimiento.

Si no desea cambiar de biblioteca, una función poco conocida de GetBytes (compatible con MySql.Data y MySqlConnector) es pasar un null buffer devuelve la longitud necesaria, por lo que no necesita codificarlo:

// 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);