Do I have to validate each record in csv file before insert it into Database ...
Sì.
Assolutamente.
Nessuna domanda.
... 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 ?
non chiara.
Quando si prendono i dati dagli utenti tramite uno schermo, si convalidano i dati prima di salvarli. Solo perché i [stessi?] Dati provengono da un file , devi ancora convalidarlo, in base alle stesse regole .
Il problema è come dire all'Utente tutto ciò che "va storto" nel processo.
potresti trattare l'intero file come una transazione e rifiutare il lotto intero se qualcosa va storto con qualsiasi record. Quindi devi indirizzare l'utente al campo errante [s] nel record errante [s] in modo che possano correggerli / loro. Potrebbe essere sotto forma di rapporto o, forse, di schermo; se usi quest'ultimo, allora potresti anche avere la possibilità di assistere l'utente nel correggere il problema. YMMV.
In alternativa, puoi trattare ogni record come "atomico"; se il file contiene 100 righe e solo la riga # 5 è un problema, puoi caricare tutti gli altri e solo "Invia indietro l'utente" riga # 5, possibilmente in un file separato, "rifiutato".
Se il tuo file di input è "compatibile" con il programma di fogli di lavoro preferito dagli utenti (cioè detto programma non fa cose "utili" ma "stupide" ai tuoi dati come, ad esempio, eliminando tutti gli zeri principali [significativi] i tuoi campi "numerici") allora potresti avere l'opzione di "restituire" gli errori come colonne aggiuntive nel file CSV. Ciò li rende più facili da trovare e, quindi, da correggere. Di nuovo, hai restituito loro l'intero file con le righe accettate opportunamente "contrassegnate" o solo le righe rifiutate?
Forse potrebbe essere utile avere una discussione con gli utenti per vedere quali potrebbero preferire (e, in effetti, sono in grado di gestire).