Gỡ cài đặt MySql.Data và thay thế nó bằng MySqlConnector .
(Tiết lộ:Tôi là người báo cáo về lỗi MySql mà bạn tìm thấy và người đóng góp chính cho MySqlConnector .)
Cũng như khắc phục sự cố đó và nhiều lỗi khác , MySqlConnector bổ sung hỗ trợ I / O không đồng bộ thực sự và cải tiến hiệu suất.
Nếu bạn không muốn chuyển đổi thư viện, một tính năng ít được biết đến của GetBytes
(được hỗ trợ bởi cả MySql.Data và MySqlConnector) là chuyển vào null
bộ đệm trả về độ dài cần thiết, vì vậy bạn không cần phải mã hóa nó:
// 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);