返された SQL からの行があることをリーダーが示しているように見えるが、リーダーの while ループが実行されないという問題があります。検証としてreader.hasrowsにメッセージボックスを入れ、whileループの後の最初の行にもメッセージボックスを入れました。hasrows のメッセージ ボックスは実行されますが、Read のメッセージ ボックスは実行されません。とても不可解です。データベースに対してクエリを実行したところ、実際に行が返されました。これがコードスニペットです。
using (DbConnection connection = CADBase.DbProviderFactory.CreateConnection())
{
connection.ConnectionString = CADBase.DbConnectionString;
connection.Open();
using (DbCommand command = connection.CreateCommand())
{
SQL = <statement here>;
command.CommandText = SQL
using (DbDataReader reader = command.ExecuteReader())
{
while (reader.Read())
{
//NEVER MAKES IT HERE
}
}
}
}