Αρα αν καταλαβαίνω καλά κανένα από τα 4 δεν είναι ακριβώς κοντά σε αυτό που σε προβληματίζει. Αν και υποψιάζομαι οτι θα έχεις και άλλα θέματα όπως αυτά που περιέγραψα, ας δεχτούμε για την παρούσα ερώτηση οτι έχεις απλά ένα πίνακα τραγουδιών (χωρίς συσχετίσεις λοιπόν με καλλιτέχνες, αλμπουμ κλπ) και ρωτάς ποιός είναι ο βέλτιστος τρόπος για να εισαχθούν πολλαπλές εγγραφές στον πίνακα αυτό σε μία κίνηση.
Μπορώ να σκεφτώ τις εξής πιθανές ενέργειες (και βεβαίως υπάρχουν και άλλες, ας μας πούν και άλλοι συνάδελφοι):
1. Με ένα loop εκτελείς 10 διαδοχικά insert queries, text ή καλώντας ένα stored procedure που κάθε φορά κάνει insert ένα row. Δεν σου εγγυάται κανείς οτι θα περάσουν όλα, αν π.χ. στο ενδιάμεσο σκάσει η σύνδεση με τον sql server σου ή κάτι άλλο. Δέχεσαι οτι σε περίπτωση που πάνε όλα στραβά μπορεί να περάσουν τα 4 και τα άλλα 6 οχι.
2. Κάνεις concatenate όλα τα τραγούδια σε ένα delimited string και τα περνάς ως παράμετρο σε μια stored procedure η οποία με κάποιον έξυπνο τρόπο τα αποσυναρμολογεί και τρέχει τα inserts μέσα σε transaction έτσι ωστε να μην αντιμετωπίσεις θέματα. Η δυσκολία αυτού του εγχειρήματος βέβαια αυξάνεται αν εκτος από τον τίτλο του τραγουδιού έχεις να περάσεις και άλλα data, όπως π.χ. διάρκειες.
3. Με ένα loop δημιουργείς τα insert queries που χρειάζεσαι και τα κάνεις enlist σε ένα ado.net transaction για να τα περάσεις στη βάση. Δες εδώ σχετικά: http://www.codeproject.com/KB/database/transactions.aspx
Για το αν είναι αποτελεσματικός τρόπος να προσθέσεις queries στο tableadapter, δεν γνωρίζω (αλλά και δεν νομίζω).
Σωτήρης Φιλιππίδης
DotSee Web Services