public static DataTable ExecuteDataTable(this QueryReader queryReader) { if (queryReader == null) { throw new ArgumentNullException(nameof(queryReader)); } var dataTable = queryReader.CreateSchemaTable(); var values = new object[queryReader.ColumnCount]; while (queryReader.Read()) { for (var i = 0; i < queryReader.ColumnCount; i++) { values[i] = queryReader[i]; } dataTable.Rows.Add(values); } return(dataTable); }
/// <summary> /// Returns a <see cref="T:System.Data.DataTable" /> that describes the column metadata /// of the <see cref="T:System.Data.IDataReader" />. /// </summary> /// <returns> /// A <see cref="T:System.Data.DataTable" /> that describes the column metadata. /// </returns> /// <exception cref="T:System.InvalidOperationException">The <see cref="T:System.Data.IDataReader" /> is closed.</exception> public DataTable GetSchemaTable() { EnsureNotDisposed(); return(_queryReader.CreateSchemaTable()); }