SqlDataReader “Enumeration yielded no results”

2020-04-10 01:31发布

问题:

Been trying to figure out, but I can't.

I execute a Stored Procedure via SqlCommand and the SqlDatareader object that is returned doesn't give me the results, however, I can see them if a explore the object in the debugger. here's an image of what I'm talking about:

In the Result View row it says "Enumeration yielded no results" but in the path:

base -> base -> ResultView -> [0] -> Non-Public members -> _values -> [0],1,[2],[3] the results are shown.

Anyone has an idea how to get them?

This is the code I'm using to get and specific column:

if (dataReader.Read())
{
   ProjectFolderId = dataReader["ItemID"].ToString();
}

but the if is returning false.

回答1:

You need to be careful: a reader can only be consumed once. By having the data visible in the preview window, it is entirely likely you've consumed that data accidentally in the debugger, and it is no longer available.

Make sure it is not visible/expanded in a debugger preview window, and try again.

The _values shown is just the legacy/remains of the last row that was successfully read.