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