SqlDataReader “Enumeration yielded no results”

2020-04-10 01:18发布

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:

See the "Result view" row

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条回答
倾城 Initia
2楼-- · 2020-04-10 01:32

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.

查看更多
登录 后发表回答