2013-06-19 9 views
0

Y at-il un moyen rapide, efficace VB.NET/ADO.NET insérer grande quantité de données à partir Geneneric.List(Of Integer) dans la table SQL Server en plus en boucle à travers la liste et l'émission INSERT individuels commandes ? Je suis limité à .NET 3.5 et SQL Server 2005.List (Of Integer) dans le tableau SQL Server

Merci!

+0

[SqlBulkCopy] (http://msdn.microsoft.com/en-us/library/System.Data.SqlClient.SqlBulkCopy.aspx)? (besoin d'un datatable). [Paramètres de valeur de table] (http://www.codeproject.com/Articles/39161/C-and-Table-Value-Parameters)? – Steve

+1

@Steve - Les TVP sont 2008+ –

+0

@MartinSmith oops ... – Steve

Répondre

0

Expédiez XML avec toutes les modifications apportées à une procédure stockée.

Voici un vieil exemple ici:

http://granadacoder.wordpress.com/2009/01/27/bulk-insert-example-using-an-idatareader-to-strong-dataset-to-sql-server-xml/

Voici un petit exemple, mais montre les bases.

http://www.mindfiresolutions.com/Sending-Multiple-Records-As-XML-To-SQL-Server-Stored-Procedure-1861.php

Envoyer xml à la procédure stockée. Détruisez le fichier XML en une table @variable ou #temp. Faites vos UPDATES/INSERTS (ou MERGE/UPSERT) en utilisant la table @variable ou #temp.

http://weblogs.asp.net/dwahlin/archive/2009/09/30/passing-multiple-records-to-a-stored-procedure-in-sql-server.aspx

Un autre exemple.

Ce que j'aime faire est de créer un ensemble de données solide. Mettez vos données dans l'ensemble de données solide. Puis envoyez le fichier ds.GetXml() à la procédure stockée. De cette façon, vous obtenez un typage fort (en utilisant l'ensemble de données fort), et vous n'avez pas besoin d'écrire votre propre xml-maker, vous récupérez de .GetXml(). Astuce: Après avoir créé l'ensemble de données robuste, supprimez l'espace de noms (tempuri ou quelque chose comme ça)

+0

Merci pour les possibilités détaillées. Mais la question reste toujours de la source originale étant Generic.List. –

+0

Vous convertissez la liste en xml. C'est pourquoi j'ai mentionné le "J'utilise un ensemble de données solide". C'est là que je boucle sur la liste et ajouter des lignes à une table dans l'ensemble de données. – granadaCoder

+0

Semble un peu exagéré pour un insert en vrac. Si j'ai besoin de faire une boucle sur une liste pour créer un ensemble de données/données, je pourrais aussi bien utiliser la datatable dans l'insertion en bloc mentionnée ci-dessus. –

Questions connexes