2011-01-15 3 views
2

est-il un moyen efficace d'insérer toutes les lignes d'un DataGridView dans DB? en utilisant une boucle foreach ou en utilisant la technique de traitement par lots?Manière efficace d'insérer toutes les lignes d'un DataGridView dans DB?

Quelle est votre option?

Merci

+0

Qu'est-ce que DataSource de votre DataGridView? – abatishchev

+0

un datatable pour peuplant (dataGridView1) mais j'ai une autre datagridview (datagridview2) et 2 combobox. datagridview2 sera rempli par les données dans datagridview1 et l'élément que l'utilisateur sélectionne dans les comboboxes. – odiseh

Répondre

1

Les solutions les plus efficaces semble être pour moi:

  1. Créer une DataTable
  2. Remplissez dans une boucle (il est toujours une boucle pour remplir un DataTable/DataSet)
  3. Save à l'aide SqlBulkCopy
+0

Merci M. Abatishchev. C'est exactement ce que je cherchais – odiseh

+0

@odiseh: Heureux que ça a aidé! :) – abatishchev

0

Je l'ai fait l'une des deux choses en fonction des besoins de l'application.

1) Vous pouvez enregistrer dans la base de données par ligne, après un ajout/modification/suppression sur une seule ligne.

2) Vous pouvez les traiter tous en même temps et prendre les différents types (ajouter/modifier/supprimer) en utilisant DataSet.GetChanges (car vous ne devez traiter/enregistrer les modifications) et traiter chaque type différemment (si nécessaire). Ceci est généralement avec une boucle. En outre, si vous avez un TableAdapter. Vous pouvez simplement utiliser les commandes Insérer/Mettre à jour si nécessaire. Ils traiteraient par lots pour vous.

+0

votre première solution nécessite une boucle droite? Si oui, cela prend-il du temps? – odiseh

+0

La plupart des solutions nécessitent une boucle. Même si vous avez utilisé Linq. Il y a encore une boucle qui est faite. –

Questions connexes