When I have multiple `select` statements that are seperated with an `insert` statement or some other statement that doesn't return a dataset the last datasets are not returned by the `DataReader` when calling `NextResult`. 

For instance i have the following sql statement that is to be executed via `SqlCommand` to the `DataReader`

```
select * from testing;
insert into testing (test) values ('testing here');
select * from testing;

```

And i execute the `sql`:

```
IDbCommand command = MyConnection.CreateCommand();
command.CommandText = statement;
var reader = (System.Data.Common.DbDataReader)command.ExecuteReader();

```

I would like to get back:

* resultset for first select statement
* records affected for insert statement
* result set for second select statement

Instead I receive the first resultset and then when i execute `NextResult()` the return is `false`.

If I run two subsequent selects however the resultsets are both returned 
ie.

```
select * from testing
select * from testing2

```

I've tried just parsing on the `;` and excuting the commands seperately.
However, this will not work in the long run because eventually I will have the use case to submit an anonymous query or create a stored procedure that would have semicolons in the command.

How can iterate through a `DataReader` that has mixed results of data and queries that do not have a return?