我认为使用while(reader.read())可能会解决您的问题。
if (myReader.HasRows) while (myReader.Read()) Console.WriteLine("t{0}t{1}", myReader.GetInt32(0), myReader.GetString(1));else Console.WriteLine("No rows returned.");myReader.Close();更新:
也来自msdn:HasRows属性返回有关当前结果集的信息。如果DataTableReader包含多个结果集,则可以在调用NextResult方法之后立即检查HasRows属性的值,以确定新结果集是否包含行。
如果当前结果集中没有行,请使用HasRows属性避免要求调用DataTableReader的Read方法。
DataTableReader.HasRows属性



