sqlbulkcopy, je veux remplacer lignes en cours dans la base de données

Dans mon programme, je suis remplissage d'une datatable et puis bulkcopying dans ma base de données.

Cependant, je veux remplacer une ligne dans la base de données si 3 des colonnes dans la ligne de match.

Par exemple, si j'ai 5 colonnes

membernum
dateregistered
nom
adresse
ville
état

Donc, si le membernum, dateregistered et de la correspondance de nom je veux remplacer la ligne.
avec les données de l'insertion en bloc. Dans mon programme, la totalité de la table de base de données n'est pas renseigné et je pense que sa à grande charge.

Using bcp As SqlBulkCopy = New SqlBulkCopy(SqlDataSource2.ConnectionString)

    bcp.DestinationTableName = "dbo.dashboardtasks"

    bcp.WriteToServer(table)

Si la meilleure méthode est de créer un datatable avec ma table de base de données comment pourrais-je comparer les lignes et puis écraser les tables où il y a des similitudes dans les 3 colonnes. et puis mettre à jour la base de données avec uniquement les lignes qui ont changé ou les nouveaux

INSERT INTO [dashboardtasks] ([tour], [taskname], [deptdate], [tasktype], [desc], [duedate], [compdate], [comments], [agent], [compby], [graceperiod], [id])
  • Comment trouvez-vous le match? Est-il un champ ID ou une clé naturelle? Parce que sinon, cela n'a aucun sens. Si vous avez un champ ID, ne serait-il pas toujours remplacer? Si il n'y a pas d'ID ou de la clé, puis ne pouvait pas plusieurs lignes à partir du fichier externe match et remplacer plusieurs lignes existantes?
  • theres une clé primaire, mais dans mon généré datatable pas
  • ma clé primaire est en auto increment, je pense que c'est pourquoi il permet de répéter
InformationsquelleAutor MyHeadHurts | 2011-01-31