2010-04-19 3 views
0

en utilisant le morceau ci-dessous de code pour copie en bloc SQLBULKCOPY SQL à l'aide que je suis bloc de données d'accès

using (SqlConnection con = new SqlConnection(strConString)) 
{ 
con.Open(); 
SqlBulkCopy sqlBC = new SqlBulkCopy(con); 
sqlBC.DestinationTableName = "SomeTable"; 
sqlBC.WriteToServer(dtOppConSummary); 
} 

Quelqu'un peut-il me fournir le code equvalent en utilisant le bloc d'accès aux données d'entreprise bibliothèque

Répondre

0

Je ne suis pas sûr si cela est possible parce que le point du bloc d'accès aux données est de vous extraire d'une source de données spécifique. SqlBulkCopy si spécifique aux bibliothèques SqlClient, et je ne pense pas qu'il y ait une manière générique de faire ce genre d'opération à travers d'autres sources de données.

+0

Ok, puis-je remplacer l'objet de connexion sql par un bloc d'accès aux données? – SSK

+0

ou c'est la meilleure façon de gérer cela ?? – SSK

+0

Je suppose que j'aurais dû demander pourquoi vous voulez essayer d'utiliser le bloc d'accès aux données de toute façon ... Je ne suis pas sûr que vous vouliez utiliser le bloc d'accès aux données pour cela - vous utilisez un serveur SQL fonctionnalité spécifique, de sorte que tout bénéfice de passer par le bloc d'accès aux données est parti ... –

1

Malheureusement, il n'y a pas de motif de copie en bloc avec le DAAB. La classe SqlBulkCopy n'implémente aucune interface autre que jetable.

Si vous souhaitez utiliser la copie en bloc dans un environnement DAAB, vous devrez modifier votre implémentation DAAB pour l'inclure. Quelques étapes que vous devrez prendre sont:

  1. Créer un `Interface IDbBulkCopy
  2. Créer une classe wrapper qui implémente la` l'interface IDbBulkCopy et enveloppe SqlBulkCopy
  3. Si vous avez besoin d'accéder à Oracle, mettre en œuvre la `IDbBulkCopy interface pour utiliser la fonction "Array Binding" d'ADO.NET.
Questions connexes