public bool ReadNextRecord(out string[] record) { record = new string[recordset.GetFieldCount()]; if (hasReadHeader) { bool hasRead = recordset.Read(); if (hasRead) { for (int i = 0; i < record.Length; i++) { record[i] = recordset.GetString(i); } } return(hasRead); } else { for (int i = 0; i < record.Length; i++) { record[i] = recordset.GetFieldName(i); } hasReadHeader = true; return(true); } }