Do I have to validate each record in csv file before insert it into Database ...
... then display the errors to user or just using sanitization only cause user will follow the format if format fail just remove it using sanitization method ?
When you take data from the users via a screen, you validate that data before saving it. Just because that [same?] data is coming from a file, you still have to validate it, according to the same rules.
The problem is how to tell the User about anything that "goes wrong" in the process.
You could treat the entire file as one transaction and reject the whole lot if anything goes wrong with any record. Then you have to direct the user to the errant field[s] in the errant record[s] so that they can fix it/them. That might be in the form of a report or, perhaps, a screen; if you use the latter, then you might also have the option to assist the user in correcting the problem. YMMV.
Alternatively, you could treat each record as "atomic"; if the file contains 100 rows and only row #5 is a problem, then you can load all the others and just "send the user back" row #5, possibly in a separate, "rejected" file.
If your input file is "compatible" with your Users' favourite spreadsheet program (i.e. said program doesn't do "helpful" but "stupid" things to your data like, say, stripping all the [significant] leading zeroes from your "numeric" fields) then you might have the option to "return" errors as additional columns in the CSV file. That makes them easier for the Users to find and, therefore, to correct. Again, do you given them the whole file back with accepted rows suitably "marked", or just the rejected rows?
Perhaps it might be useful to have a discussion with the Users to see which they might prefer (and, indeed, are capable of dealing with).