Mysql
 sql >> база данни >  >> RDS >> Mysql

MySqlDataReader.GetStream() хвърля IndexOutOfRangeException

Деинсталирайте 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);


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да накарам заявка да не връща нищо, когато няма условия?

  2. Използване на MySQL заявка с променливи от C#

  3. Как да накарам първичен ключ да започва от 1000?

  4. Отпечатване на резултат от mysql заявка от променлива

  5. Мога ли да дефинирам множество събития в една декларация на Trigger в mysql?