0
system.invalid operation exception whileループの後にデータが存在しないときに無効な読み取りが試行されます。Readerでデータが存在しないときに無効な読み取りを試行する
byte[] fingerprint()
{
OpenConnection();
SqlCommand command = connection.CreateCommand();
SqlDataReader Reader;
command.CommandText = "SELECT fp,name FROM fptable";
Reader = command.ExecuteReader();
// Reader= command.ExecuteReader(CommandBehavior.CloseConnection);
try
{
while (Reader.Read())
{
Reader.GetValue(0);
String name = Reader.GetValue(1) as String;
byte[] temps = Reader.GetValue(0) as byte[];
list.Add(temps);
names.Add(name);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
byte[] temp = Reader.GetValue(0) as byte[]; //**error at this point**
// byte[] temp = Reader["fp"] as byte[];
// MakeReport(list.Count+""+names.Count);
return temp;
}
なぜあなたはその時点で再び読者から読もうとしていますか?その時点で、コードはクエリによって返されたデータの最後に達しています(ループを終了)ので、そのエラーが発生するのは正常です。 ....読み取るデータがありません – Steve
あなたのリーダーはwhileループの最後で終了します。あなたはそれを読み続けることができません –