public override DataObject GetValue(long rowNumber, int columnOffset) { if (rowNumber < 0 || rowNumber >= tableInfoObjects.Count) { throw new ArgumentOutOfRangeException("rowNumber"); } var tableInfo = tableInfoObjects[(int)rowNumber]; switch (columnOffset) { case 0: return(DataObject.String(tableInfo.Catalog)); case 1: return(DataObject.String(tableInfo.Schema)); case 2: return(DataObject.String(tableInfo.Name)); case 3: return(DataObject.String(tableInfo.Type)); case 4: return(DataObject.String(tableInfo.Comments)); default: throw new ArgumentOutOfRangeException("columnOffset"); } }