Можете да вмъкнете няколко реда, като използвате един SQL израз, както следва:
INSERT INTO myTable (col1, col2, col3) VALUES ('myval1', 'myval2', 'myval3'), ('myotherval1', 'myotherval2', 'myotherval3'), ('anotherval1', 'anotherval2', 'anotherval3');
Актуализация:
MarkR е прав в коментара си - ако събирате данни от потребител или компилирате информация, можете да изградите заявката динамично с нещо като:
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();
Две важни точки, които трябва да отбележите:
- Ако приемате информация от потребител, това е много важно за дезинфекция на всички въведени потребители, в противен случай злонамерените потребители биха могли да променят/изтриват/изпускат цялата ви база данни. За повече информация потърсете в Google „SQL инжекции.“
- Използвам класа StringBuilder, вместо да използвам примитив на низ и просто добавям (т.е. string s ="Insert..."; s+="blah blah blah"), защото това е StringBuilder е по-бърз при добавяне, т.к. не се третира като масив и следователно не е необходимо да се преоразмерява, докато добавяте към него.