VS 2012 では、既存の DataTable を読み取るための DataTableReader を作成しました。DataTable は、SQLServer データベースに対してクエリを実行するように構成されています。DataSet デザイナーで DataTable を表示し、[データのプレビュー] を選択すると、適切にデータが設定されたテーブルが表示されます。ただし、コード内で DataTableReader を使用して表示しようとすると、行がないと返されます。コードは次のとおりです。
DataTableReader reader = this.myDataSet.myDataTable.CreateDataReader();
reader.Read();
if (reader.HasRows)
{
while (reader.Read())
{
Console.WriteLine("{0}", reader.GetString(0));
}
}
else
{
Console.WriteLine("reader returned no rows");
}
reader.HasRows 行 (またはその直後) にブレークポイントを置くと、HasRows が false であることがわかります。DataTableReader はデータベースに適切に接続しているように見えます。つまり、エラーは発生していませんが、そこにあることがわかっている行が返されていません。DataSet デザイナの DataTable 'Preview Data' が機能するのに、コード内からは機能しない理由を理解するのを手伝ってもらえますか?