public void LoadTable(DataTable table, int startRowIndex, int rows, out int totalrows) { int fieldCount = this.IDataReader.FieldCount; for (int i = 0; i < fieldCount; i++) { table.Columns.Add(this.IDataReader.GetName(i), this.IDataReader.GetFieldType(i)); } //Skip rows int perfixRows = 0; while (perfixRows < startRowIndex) { if (!this.Read()) { break; } perfixRows++; } //读取数据 if (rows == -1) { while (this.Read()) { DataRow row = table.NewRow(); table.Rows.Add(row); for (int j = 0; j < this.IDataReader.FieldCount; j++) { object value = YZReader.GetValue(this.IDataReader, j); row[j] = value; } } } else { for (int k = 0; k < rows; k++) { if (!this.Read()) { break; } DataRow row = table.NewRow(); table.Rows.Add(row); for (int m = 0; m < this.IDataReader.FieldCount; m++) { object value = YZReader.GetValue(this.IDataReader, m); row[m] = value; } } } //后面的行数 int postRows = 0; while (this.Read()) { postRows++; } totalrows = (perfixRows + table.Rows.Count) + postRows; }