Question

i have a data file(csv) consisting of 2 columns & 1000 rows, as i load it to my datagridview it takes alot of time, i just want to show only the first 6 rows just as a preview of file to user. Is there any way i can show only the first 6 rows in my datagrid view. Following is the code im displaying the data in DataGridView.

DataTable csvDataTable = CSVReader.ReadCSVFile(textBoxCsv.Text, true);
dataGridViewCsvData.DataSource = csvDataTable;
dataGridViewCsvData.SelectionMode = DataGridViewSelectionMode.FullColumnSelect;
Was it helpful?

Solution

Every datatable has it's own DefaultView. http://msdn.microsoft.com/en-us/library/system.data.datatable.defaultview.aspx

You can then get the Table from the view by DefaultView.GetTable. And you can manipulate data in you View the way you want. You can filter up, query.

You can find out more about expressions here: http://msdn.microsoft.com/en-us/library/system.data.datacolumn.expression.aspx

OR, since CSVReader is an open-source project, you can simply change

public DataTable CreateDataTable(bool headerRow)

Add number of lines to this method, and you will get what you need without reading the whole file.

I didn't read the whole source, so there might be a solution without even changing a code.

Use Open Source for 100%. Change it, customize it, send you patches! People do appreciate it! And you will get experience, knowledge and new friends who might help you in future :)

OTHER TIPS

CSVReader is an open source project isn't it? try to add ReadTopLines method to that class that will read only top N lines given as parameter

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top