public static void writeCardItems(List <CardDetails> cardItems) { DataTable cardItemDataTable = new DataTable(); cardItemDataTable.Clear(); cardItemDataTable.Columns.Add("cardRecordID"); //0 cardItemDataTable.Columns.Add("firstName"); //1 cardItemDataTable.Columns.Add("lastName"); //2 cardItemDataTable.Columns.Add("cardName"); //3 cardItemDataTable.Columns.Add("cardEmail"); //4 string multiFileName = ""; int rowsPerFile = 5000; double totalFiles = Math.Ceiling((double)cardItems.Count / rowsPerFile); Boolean flagTruncate = true; for (int j = 0; j < totalFiles; j++) { if (j > 0) { multiFileName = (j + 1).ToString(); } StreamWriter writer; try { writer = new StreamWriter(Properties.Settings.Default.filePath + "\\CardItems" + multiFileName + "." + "csv"); } catch (IOException e) { // progressBar.Value = 1; MessageBox.Show("Unable to export out CSV data to file " + Properties.Settings.Default.filePath + ". Please make sure you do not have the file open and you have access to the file.", "Cannot write to file", MessageBoxButtons.OK); return; } writer.WriteLine("cardRecordID,firstName,lastName,cardName,cardEmail"); for (int i = j * rowsPerFile; i < cardItems.Count && i < (j * rowsPerFile) + rowsPerFile; i++) { cardItemDataTable.Rows.Add(cardItems[i].cardRecordID, cardItems[i].firstName, cardItems[i].lastName, cardItems[i].cardName, cardItems[i].cardEmail ); writer.WriteLine("\"" + cardItems[i].cardRecordID + "\",\"" + cardItems[i].firstName + "\",\"" + cardItems[i].lastName + "\",\"" + cardItems[i].cardName + "\",\"" + cardItems[i].cardEmail + "\",\"" + "\""); } DatabaseParse.insertLineItems(cardItemDataTable, "cardItems", flagTruncate); cardItemDataTable.Clear(); flagTruncate = false; //delete only once writer.Close(); } }