Sie können mehrere Zeilen mit einer einzigen SQL-Anweisung wie folgt einfügen:
INSERT INTO myTable (col1, col2, col3) VALUES ('myval1', 'myval2', 'myval3'), ('myotherval1', 'myotherval2', 'myotherval3'), ('anotherval1', 'anotherval2', 'anotherval3');
Aktualisierung:
MarkR hat Recht mit seinem Kommentar - wenn Sie Daten von einem Benutzer sammeln oder Informationen zusammenstellen, können Sie die Abfrage dynamisch mit etwas wie:
erstellenStringBuilder 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();
Zwei wichtige Punkte zu beachten:
- Wenn Sie Eingaben von einem Benutzer akzeptieren, ist dies sehr wichtig um alle Benutzereingaben zu bereinigen, andernfalls könnten böswillige Benutzer Ihre gesamte Datenbank ändern/löschen/löschen. Für weitere Informationen googeln Sie "SQL-Injektionen."
- Ich verwende die StringBuilder-Klasse, anstatt ein String-Primitiv zu verwenden und einfach anzuhängen (dh string s ="Insert..."; s+="blah blah blah"), weil es StringBuilder beim Anhängen schneller ist, weil Es wird nicht als Array behandelt und muss daher beim Anhängen nicht selbst in der Größe angepasst werden.