Gibt es eine Möglichkeit, ein object oder eine list an die gespeicherte Prozedur des SQL-servers zu übergeben?

Ich möchte object oder list an SQL server gespeicherte Prozedur übergeben. Mein Zweck ist es, mehrere datasätze gleichzeitig über Store-Verfahren einzufügen.

Also, gibt es einen path, es zu tun?

Sie können sqlParameter verwenden. Mögen:

SqlParameter param1 = new Sqlparameter(SPvariablesame , ValueofVariablewhichYouWantToPass) 

Irgendwelche so viele Parameter, die Sie param2, param3 und am Ende wollen

 cmd.Parameter.add(param1) Execute the command 

Es gibt Möglichkeiten wie XML und List zu verwenden. Aber wenn Sie Massen insert möchten, können Sie verwenden

GROß EINFÜGEN

Ich glaube an SQLserver 2008 und höher, dass Sie einen stark typisierten DataTable-Parameter für Ihre gespeicherte Prozedur haben können, an den Sie eine .Net-DataTable übergeben können.

BULK INSERT ist ein guter Vorschlag, nur eine große Anzahl von Zeilen einzufügen, und es ist viel schneller als einzelne Einfügungen.

Zum Einfügen hierarchischer objectdaten, zB Parent 1 hat 2 untergeordnete datasätze, Parent 2 hat 3 untergeordnete datasätze, Parent 3 hat 1 untergeordneten datasatz … Ich habe in der Vergangenheit XML verwendet, um die objectstruktur in .Net zu serialisieren, bevor sie an SQLserver übergeben wurde es in Tabellen. Natürlich, wenn Sie so etwas tun, würden Sie wahrscheinlich besser mit Entity Framework oder NHibernate usw. bedient werden …

Sie suchen nach Table Value Parameters Sie können schreibgeschützte Tabellenvariablen in eine gespeicherte Prozedur übergeben.

Sie können einen guten Start von diesem Blog finden.

Und diese alte Stackoverflow- Frage hilft Ihnen auch.