Every ExecuteNonQuery
requires a round trip to the server. On your local machine, you may not measure much overhead, but in general (assuming that your code to populate the table is reasonable, and the code using the table on the SQL side is also reasonable), I'd expect method 2 to be more efficient.
Also, generally, if you've not got any other code involving transactions, then the first method will have to create and commit 50 transactions, whereas the second should be able to run inside a single transaction, which should enable the file I/O costs to be lower also.