【发布时间】:2013-12-30 07:01:47
【问题描述】:
我正在尝试使用以下代码使用 SaveFileDialog 从 MySql 打开一个 Blob(winword 文档):
myConn.Open();
MySqlDataReader myReader;
myReader = view.ExecuteReader();
long CurrentIndex = 0;
long BytesReturned;
while (myReader.Read())
{
if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{
string strFilename = saveFileDialog1.FileName;
FileStream fs = new FileStream(strFilename, FileMode.CreateNew, FileAccess.Write);
BinaryWriter bw = new BinaryWriter(fs);
CurrentIndex = 0;
long len = myReader.GetBytes(1, 0, null, 0, 0);
byte[] blob = new byte[len];
BytesReturned = myReader.GetBytes(1, CurrentIndex, blob, 0, (int)len);
while (BytesReturned == (int)len)
{
bw.Write(blob);
bw.Flush();
CurrentIndex += (int)len;
BytesReturned = myReader.GetBytes(1, CurrentIndex, blob, 0, (int)len);
}
bw.Write(blob,0 , (int)len - 1);
bw.Flush();
bw.Close();
}
myReader.Close();
}
我得到的例外是:
索引数组的边界。
对 FileStream 以外的其他方法有什么建议吗?
【问题讨论】:
-
您在哪一行收到此错误?
-
对不起,这是一个异常而不是错误。我不知道如何跟踪发生异常的行。
-
只要调试你的代码,你就可以看到你从哪里得到它..
-
我所能看到的是:MySql.Data.dll 中发生了“System.IndexOutOfRangeException”类型的第一次机会异常。对不起,只是一个新手。