When processing the CSV file, you cannot simply use commas to split the content. If there is a comma in the double quotation marks, this line will be parsed incorrectly. Finally, find a simple aspect of splite using a regular expression. The principle is to use "," as the tag for splitting.
/// <Summary>
/// Read a CSV file into a datatable.
/// </Summary>
/// <Param name = "strpath"> Complete file path </Param>
/// <Returns> Datatable </Returns>
Public Static Datatable gettable ( String Strpath)
{
RegEx Reg = New RegEx ( " \ " ,\ "" );
Int Intcolcount = 0 ;
Datatable mydt = New Datatable ( " Mytablename " );
//Datacolumn mydc;
//Datarow mydr;
//String strpath = "";
StringStrline;
String[] Aryline;
Streamreader mysr= NewStreamreader (strpath, system. Text. encoding. Default );
Strline=Mysr. Readline ();
Aryline=Reg. Split (strline );
Intcolcount = Aryline. length;
For ( Int I = 0 ; I < Aryline. length; I ++ )
{
Datacolumn mydc = New Datacolumn (aryline [I]. Replace ( " \ "" , "" ), Typeof (string ));
Mydt. Columns. Add (mydc );
}
While (Strline = Mysr. Readline ()) ! = Null )
{
Aryline = Reg. Split (strline );
Datarow mydr = Mydt. newrow ();
For ( Int I = 0 ; I < Intcolcount; I ++ )
{
Mydr [I] = Aryline [I]. Replace ( " \ "" , "" );
}
Mydt. Rows. Add (mydr );
}
Return Mydt;
}