2010-03-20 8 views
0

peut me aider pourquoi cette erreur se produit lorsque je mets à jour à l'aide SQLDataAdapter avec requête de jointureSqlDataAdapter Mise à jour

génération SQL dynamique est pas prise en charge par rapport aux tables de base multiples.

+1

S'il vous plaît nous montrer la requête –

+0

Il se produit lorsque nous essayons de changer la valeur de la colonne d'identité dans un datarow. Pas sûr de la solution. Juste en montrant le scénario. – KoolKabin

Répondre

0

Vous avez une "jointure" dans votre requête principale pour votre jeu de données (le premier dans le TableAdapter avec une vérification par lui). Vous ne pouvez pas générer automatiquement la logique insert/update/delete pour un TableAdapter lorsque la requête principale a plusieurs tables référencées dans la requête via une jointure. Le concepteur n'est pas assez intelligent pour déterminer la table à laquelle vous souhaitez envoyer des mises à jour dans ce cas, c'est pourquoi vous obtenez le message d'erreur.

Solution. Assurez-vous que votre requête principale ne fait référence qu'à la table pour laquelle le concepteur doit écrire le code d'insertion/mise à jour/suppression. Vos requêtes secondaires peuvent référencer autant de tables que vous le souhaitez.

0

C'était dans le cas où j'essayais de définir la valeur pour la colonne d'identité dans mon datarow. Simplement j'ai supprimé le code pour définir la valeur pour la colonne d'identité et cela fonctionnera.

Mon scénario:

Base de données: uin [primaire, identité] nom adresse

Chaque fois que j'ai essayé de régler le datarow ("uin") l'erreur se produit. Mais fonctionne bien avec datarow ("nom") et datarow ("adresse").

espérons que cela fonctionne pour vous aussi