Du kan indsætte flere rækker ved hjælp af en enkelt SQL-sætning som sådan:
INSERT INTO myTable (col1, col2, col3) VALUES ('myval1', 'myval2', 'myval3'), ('myotherval1', 'myotherval2', 'myotherval3'), ('anotherval1', 'anotherval2', 'anotherval3');
Opdatering:
MarkR har ret i sin kommentar - hvis du indsamler data fra en bruger, eller du kompilerer information, kan du bygge forespørgslen dynamisk med noget som:
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.Append("INSERT INTO myTable (col1, col2, col3) VALUES ");
for(int i=0;i<myDataCollection.Count;i++) {
stringBuilder.Append("(" + myDataCollection[i].Col1 + ", " + myDataCollection[i].Col2 + ", " + myDataCollection[i].Col3 + ")");
if (i<myDataCollection.Count-1) {
stringBuilder.Append(", ");
} else {
stringBuilder.Append(";");
}
}
string insertStatement = stringBuilder.ToString();
To vigtige punkter at bemærke:
- Hvis du accepterer input fra en bruger, er det meget vigtigt for at rense alle brugerinput, ellers kan ondsindede brugere ændre/slette/slette hele din database. For mere info, google "SQL-injektioner."
- Jeg bruger StringBuilder-klassen i stedet for at bruge en primitiv streng og blot tilføjelse (dvs. string s ="Insert..."; s+="blah blah blah"), fordi det er StringBuilder er hurtigere til at tilføje, fordi det behandles ikke som et array, og det behøver derfor ikke at ændre størrelsen på sig selv, når du tilføjer det.