Come posso convalidare i dati di datatable prima di inserirlo utilizzando SqlBulkCopy

asp.net c# datatable sqlbulkcopy sql-server

Domanda

Sto importando 3 mila righe dal foglio Excel usando ExcelDataReader a Datatable.

Come posso convalidare queste righe prima di inserirle nel database usando SqlBulkCopy.Writetoserver ().

Domande:

1. Come confrontare il mio datatable al TableScheme di una delle tabelle di SQL Server.

2. Posso convalidare i vincoli FK e le duplicazioni PK prima dell'inserimento

3. se ho qualche tabella come questo con SponsorID colonna con FK per la stessa tabella

ID - Nome - Età - Relazione - Colonna4 - SponsorID

100 - Adam Michale - 32 - se stesso - 1/1/2015 - 100

101 - Anna Mike - 29 - moglie - 1/1/2015 - 100

102 - Sarah Adam - 6 - Daughter - 1/1/2015 - 100

è comunque necessario eseguire tale inserimento utilizzando SqlBulkCopy.

Grazie in anticipo.

E sarò più che felice di conoscere altri approcci per inserimenti come questo se ce ne sono

Risposta accettata

  1. Puoi interrogare il tuo file excel e confrontarlo usando il linguaggio SQL. Vedi l'esempio qui sotto:

    SELEZIONA * DA OPENROWSET ('Microsoft.Jet.OLEDB.4.0', 'Excel 8.0; Database = C: \ excel-sql-server.xls', [Foglio1 $])

Trova più opzioni su query distribuite su questo link .

  1. È possibile interrogare i dati già presenti sui dati SQL e confrontarli con Excel per verificare le duplicazioni PK / voce.

  2. È possibile creare una colonna OldID, con gli ID presenti su excel. Quindi aggiornare l'ID sponsor con i nuovi ID utilizzando il riferimento OldID.



Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché