protected virtual void OnDataReaderAvailable(object sender, DataReaderAvailableEventArgs e) { if (DataReaderAvailable != null) { DataReaderAvailable(this, e); } }
private void ReturnResults(IDataReader dr) { do { DataReaderAvailableEventArgs result; result = new DataReaderAvailableEventArgs(dr); OnDataReaderAvailable(this, result); if (!result.SkipResults) { DataTable schema = dr.GetSchemaTable(); // for list of column names & sizes} if (schema != null) { OnTableSchemaAvailable(this, new TableSchemaAvailableEventArgs(schema)); while (dr.Read()) // Read through rows in result set { if (runState == RunStates.Cancelling) { return; } object[] values = new object[dr.FieldCount]; dr.GetValues(values); OnDataRowAvailable(this, new DataRowAvailableEventArgs(values)); } } OnCommandDone(this, new CommandDoneEventArgs(dr.RecordsAffected)); if (!dr.NextResult()) { dr.Close(); } } else { OnCommandDone(this, new CommandDoneEventArgs(dr.RecordsAffected)); } } while (!dr.IsClosed); }