I want to create a program using .Net to read or search data in a 20Gb CSV file
Is there any way to do it ?
My Code For Search
string search = txtBoxSearch.Text;
string pathOnly = Path.GetDirectoryName(csvPath);
string fileName = Path.GetFileName(csvPath);
string sql = @"SELECT F1 AS StringID, F2 AS StringContent FROM [" + fileName + "] WHERE F2 LIKE '%" + search + "%'";
using (OleDbConnection connection = new OleDbConnection(
        @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + pathOnly +
        ";Extended Properties=\"Text;HDR=No\""))
using (OleDbCommand command = new OleDbCommand(sql, connection))
using (OleDbDataAdapter adapter = new OleDbDataAdapter(command))
{
        DataTable dataTable = new DataTable();
        adapter.Fill(dataTable);
        dataTable.Columns.Add("MatchTimes", typeof(System.Int32));
         foreach (DataRow row in dataTable.Rows)
         {
                 row["MatchTimes"] = Regex.Matches(row["StringContent"].ToString(), search).Count;
         }
         GridViewResult.DataSource = dataTable;
         GridViewResult.DataBind();
My Code for generate the CSV File
int records = 100000;
File.AppendAllLines(csvPath, 
   (from r in Enumerable.Range(0, records) 
      let guid = Guid.NewGuid() 
      let stringContent = GenerateRandomString(256000) 
      select $"{guid},{stringContent}"));
 
    