Load the CSV into a datatable. Create the SQLBulkCopy object, set the connection and destination parameters, then call the bulk copy method (I think it's actually called BulkCopy... it's going to be obvious)... pass it your datatable... Now... here comes the gotcha... the source data MUST match the destination table... column names, the types, etc...

What I've done in the past is to create a staging table that maps directly to the file being imported. When I then bulkimport the file, it goes into the staging table. From there I run another query which does data scrubbing, validation, cleanup, etc. And then copy the data out of there into its final table. Then the staging table gets cleared out. It's a bit more effort, but makes things safer incase the data coming in decides to go south on you.

-tg