Erreur : LinqDataSource 'LdsDemande' ne prend pas en charge la propriété Select lorsque les opérations Delete, Insert ou Update sont activées
5 réponses
Gilbert Tordeur
Bonjour.
Que veut dire ce message d'erreur ? Je ne vois pas du tout dans quel sens
travailler.
Contexte : VB2008, page ASP.
Il s'agit d'afficher une grille à partir d'une base SQL et d'une requête
Linq, pour permettre la modification de certains champs. Le programme est
basique pour l'instant. Le code vb est vide, tout est dans la page aspx. Son
contenu, ainsi que le message d'erreur, sont listés ci-dessous.
Le programme affiche bien la grille. Je clique sur le lien «Modifier» d'une
ligne. La grille est réaffichée avec des TextBox pour la ligne concernée. Je
modifie la valeur d'un champ, puis je clique sur «Mettre à jour» et là
apparaît le message d'erreur. La table SQL n'est pas mise à jour. (Si je
clique sur «Annuler», tout se passe bien.)
Merci d'avance pour votre aide,
Gilbert.
================
Option Strict On
Partial Class FinCau025
End Class
Erreur du serveur dans l'application '/FinCau000'.
--------------------------------------------------------------------------------
LinqDataSource 'LdsDemande' ne prend pas en charge la propriété Select
lorsque les opérations Delete, Insert ou Update sont activées.
Description : Une exception non gérée s'est produite au moment de
l'exécution de la demande Web actuelle. Contrôlez la trace de la pile pour
plus d'informations sur l'erreur et son origine dans le code.
Détails de l'exception: System.InvalidOperationException: LinqDataSource
'LdsDemande' ne prend pas en charge la propriété Select lorsque les
opérations Delete, Insert ou Update sont activées.
Erreur source:
Une exception non gérée s'est produite lors de l'exécution de la demande Web
actuelle. Les informations relatives à l'origine et l'emplacement de
l'exception peuvent être identifiées en utilisant la trace de la pile
d'exception ci-dessous.
--------------------------------------------------------------------------------
Informations sur la version : Version Microsoft .NET Framework
:2.0.50727.3053; Version ASP.NET :2.0.50727.3053
donc sans le select -- Jérémy JEANSON MCP http://jeremy.blogdns.net
Gilbert Tordeur
Jérémy,
Merci pour ta réponse. Le message d'erreur a changé :(
Voici le nouveau code et le nouveau message d'erreur, cela t'inspire-t-il ?
Est-ce que par malheur il serait impossible d'activer la mise à jour sans utiliser le ViewState (que je désactive systématiquement pour des raisons de performances sur le WAN) ?
============== Erreur du serveur dans l'application '/FinCau000'. --------------------------------------------------------------------------------
La valeur du membre 'DcbNumDemande' d'un objet de type 'CauDemandeCaution' a changé. Un membre définissant l'identité de l'objet ne peut pas être modifié. Si possible, ajoutez un nouvel objet avec une nouvelle identité, et supprimez l'objet existant à la place. Description : Une exception non gérée s'est produite au moment de l'exécution de la demande Web actuelle. Contrôlez la trace de la pile pour plus d'informations sur l'erreur et son origine dans le code.
Détails de l'exception: System.InvalidOperationException: La valeur du membre 'DcbNumDemande' d'un objet de type 'CauDemandeCaution' a changé. Un membre définissant l'identité de l'objet ne peut pas être modifié. Si possible, ajoutez un nouvel objet avec une nouvelle identité, et supprimez l'objet existant à la place.
Erreur source:
Une exception non gérée s'est produite lors de l'exécution de la demande Web actuelle. Les informations relatives à l'origine et l'emplacement de l'exception peuvent être identifiées en utilisant la trace de la pile d'exception ci-dessous.
Trace de la pile:
[InvalidOperationException: La valeur du membre 'DcbNumDemande' d'un objet de type 'CauDemandeCaution' a changé. Un membre définissant l'identité de l'objet ne peut pas être modifié. Si possible, ajoutez un nouvel objet avec une nouvelle identité, et supprimez l'objet existant à la place.] System.Data.Linq.ChangeProcessor.CheckForInvalidChanges(TrackedObject tracked) +218 System.Data.Linq.ChangeProcessor.SubmitChanges(ConflictMode failureMode) +607 System.Data.Linq.DataContext.SubmitChanges(ConflictMode failureMode) +331 System.Data.Linq.DataContext.SubmitChanges() +19 System.Web.UI.WebControls.LinqToSqlWrapper.SubmitChanges(DataContext dataContext) +9 System.Web.UI.WebControls.LinqDataSourceView.UpdateDataObject(Object dataContext, Object table, Object oldDataObject, Object newDataObject) +109 System.Web.UI.WebControls.LinqDataSourceView.ExecuteUpdate(IDictionary keys, IDictionary values, IDictionary oldValues) +525 System.Web.UI.DataSourceView.Update(IDictionary keys, IDictionary values, IDictionary oldValues, DataSourceViewOperationCallback callback) +92 System.Web.UI.WebControls.GridView.HandleUpdate(GridViewRow row, Int32 rowIndex, Boolean causesValidation) +907 System.Web.UI.WebControls.GridView.HandleEvent(EventArgs e, Boolean causesValidation, String validationGroup) +704 System.Web.UI.WebControls.GridView.OnBubbleEvent(Object source, EventArgs e) +95 System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +37 System.Web.UI.WebControls.GridViewRow.OnBubbleEvent(Object source, EventArgs e) +123 System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +37 System.Web.UI.WebControls.LinkButton.OnCommand(CommandEventArgs e) +118 System.Web.UI.WebControls.LinkButton.RaisePostBackEvent(String eventArgument) +135 System.Web.UI.WebControls.LinkButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10 System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13 System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +175 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1565
-------------------------------------------------------------------------------- Informations sur la version : Version Microsoft .NET Framework :2.0.50727.3053; Version ASP.NET :2.0.50727.3053
Jérémy,
Merci pour ta réponse. Le message d'erreur a changé :(
Voici le nouveau code et le nouveau message d'erreur, cela t'inspire-t-il ?
Est-ce que par malheur il serait impossible d'activer la mise à jour sans
utiliser le ViewState (que je désactive systématiquement pour des raisons de
performances sur le WAN) ?
==============
Erreur du serveur dans l'application '/FinCau000'.
--------------------------------------------------------------------------------
La valeur du membre 'DcbNumDemande' d'un objet de type 'CauDemandeCaution' a
changé.
Un membre définissant l'identité de l'objet ne peut pas être modifié.
Si possible, ajoutez un nouvel objet avec une nouvelle identité, et
supprimez l'objet existant à la place.
Description : Une exception non gérée s'est produite au moment de
l'exécution de la demande Web actuelle. Contrôlez la trace de la pile pour
plus d'informations sur l'erreur et son origine dans le code.
Détails de l'exception: System.InvalidOperationException: La valeur du
membre 'DcbNumDemande' d'un objet de type 'CauDemandeCaution' a changé.
Un membre définissant l'identité de l'objet ne peut pas être modifié.
Si possible, ajoutez un nouvel objet avec une nouvelle identité, et
supprimez l'objet existant à la place.
Erreur source:
Une exception non gérée s'est produite lors de l'exécution de la demande Web
actuelle. Les informations relatives à l'origine et l'emplacement de
l'exception peuvent être identifiées en utilisant la trace de la pile
d'exception ci-dessous.
Trace de la pile:
[InvalidOperationException: La valeur du membre 'DcbNumDemande' d'un objet
de type 'CauDemandeCaution' a changé.
Un membre définissant l'identité de l'objet ne peut pas être modifié.
Si possible, ajoutez un nouvel objet avec une nouvelle identité, et
supprimez l'objet existant à la place.]
System.Data.Linq.ChangeProcessor.CheckForInvalidChanges(TrackedObject
tracked) +218
System.Data.Linq.ChangeProcessor.SubmitChanges(ConflictMode failureMode)
+607
System.Data.Linq.DataContext.SubmitChanges(ConflictMode failureMode) +331
System.Data.Linq.DataContext.SubmitChanges() +19
System.Web.UI.WebControls.LinqToSqlWrapper.SubmitChanges(DataContext
dataContext) +9
System.Web.UI.WebControls.LinqDataSourceView.UpdateDataObject(Object
dataContext, Object table, Object oldDataObject, Object newDataObject) +109
System.Web.UI.WebControls.LinqDataSourceView.ExecuteUpdate(IDictionary
keys, IDictionary values, IDictionary oldValues) +525
System.Web.UI.DataSourceView.Update(IDictionary keys, IDictionary values,
IDictionary oldValues, DataSourceViewOperationCallback callback) +92
System.Web.UI.WebControls.GridView.HandleUpdate(GridViewRow row, Int32
rowIndex, Boolean causesValidation) +907
System.Web.UI.WebControls.GridView.HandleEvent(EventArgs e, Boolean
causesValidation, String validationGroup) +704
System.Web.UI.WebControls.GridView.OnBubbleEvent(Object source, EventArgs
e) +95
System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +37
System.Web.UI.WebControls.GridViewRow.OnBubbleEvent(Object source,
EventArgs e) +123
System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +37
System.Web.UI.WebControls.LinkButton.OnCommand(CommandEventArgs e) +118
System.Web.UI.WebControls.LinkButton.RaisePostBackEvent(String
eventArgument) +135
System.Web.UI.WebControls.LinkButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String
eventArgument) +10
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler
sourceControl, String eventArgument) +13
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +175
System.Web.UI.Page.ProcessRequestMain(Boolean
includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1565
--------------------------------------------------------------------------------
Informations sur la version : Version Microsoft .NET Framework
:2.0.50727.3053; Version ASP.NET :2.0.50727.3053
Merci pour ta réponse. Le message d'erreur a changé :(
Voici le nouveau code et le nouveau message d'erreur, cela t'inspire-t-il ?
Est-ce que par malheur il serait impossible d'activer la mise à jour sans utiliser le ViewState (que je désactive systématiquement pour des raisons de performances sur le WAN) ?
============== Erreur du serveur dans l'application '/FinCau000'. --------------------------------------------------------------------------------
La valeur du membre 'DcbNumDemande' d'un objet de type 'CauDemandeCaution' a changé. Un membre définissant l'identité de l'objet ne peut pas être modifié. Si possible, ajoutez un nouvel objet avec une nouvelle identité, et supprimez l'objet existant à la place. Description : Une exception non gérée s'est produite au moment de l'exécution de la demande Web actuelle. Contrôlez la trace de la pile pour plus d'informations sur l'erreur et son origine dans le code.
Détails de l'exception: System.InvalidOperationException: La valeur du membre 'DcbNumDemande' d'un objet de type 'CauDemandeCaution' a changé. Un membre définissant l'identité de l'objet ne peut pas être modifié. Si possible, ajoutez un nouvel objet avec une nouvelle identité, et supprimez l'objet existant à la place.
Erreur source:
Une exception non gérée s'est produite lors de l'exécution de la demande Web actuelle. Les informations relatives à l'origine et l'emplacement de l'exception peuvent être identifiées en utilisant la trace de la pile d'exception ci-dessous.
Trace de la pile:
[InvalidOperationException: La valeur du membre 'DcbNumDemande' d'un objet de type 'CauDemandeCaution' a changé. Un membre définissant l'identité de l'objet ne peut pas être modifié. Si possible, ajoutez un nouvel objet avec une nouvelle identité, et supprimez l'objet existant à la place.] System.Data.Linq.ChangeProcessor.CheckForInvalidChanges(TrackedObject tracked) +218 System.Data.Linq.ChangeProcessor.SubmitChanges(ConflictMode failureMode) +607 System.Data.Linq.DataContext.SubmitChanges(ConflictMode failureMode) +331 System.Data.Linq.DataContext.SubmitChanges() +19 System.Web.UI.WebControls.LinqToSqlWrapper.SubmitChanges(DataContext dataContext) +9 System.Web.UI.WebControls.LinqDataSourceView.UpdateDataObject(Object dataContext, Object table, Object oldDataObject, Object newDataObject) +109 System.Web.UI.WebControls.LinqDataSourceView.ExecuteUpdate(IDictionary keys, IDictionary values, IDictionary oldValues) +525 System.Web.UI.DataSourceView.Update(IDictionary keys, IDictionary values, IDictionary oldValues, DataSourceViewOperationCallback callback) +92 System.Web.UI.WebControls.GridView.HandleUpdate(GridViewRow row, Int32 rowIndex, Boolean causesValidation) +907 System.Web.UI.WebControls.GridView.HandleEvent(EventArgs e, Boolean causesValidation, String validationGroup) +704 System.Web.UI.WebControls.GridView.OnBubbleEvent(Object source, EventArgs e) +95 System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +37 System.Web.UI.WebControls.GridViewRow.OnBubbleEvent(Object source, EventArgs e) +123 System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +37 System.Web.UI.WebControls.LinkButton.OnCommand(CommandEventArgs e) +118 System.Web.UI.WebControls.LinkButton.RaisePostBackEvent(String eventArgument) +135 System.Web.UI.WebControls.LinkButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10 System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13 System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +175 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1565
-------------------------------------------------------------------------------- Informations sur la version : Version Microsoft .NET Framework :2.0.50727.3053; Version ASP.NET :2.0.50727.3053
Jérémy Jeanson
Euh?? personnelement je ne te conseil pas de faire sauter le viewstate sur des controls qui te servent à gérer des données, sur le reste je comprend bien ton approche j'en fais de même.
par contre sur des controles de donnée, je suis un peu tenté de te dire que c'est là qu'opère la magie du viewstate donc ... enable = true ;) -- Jérémy JEANSON MCP http://jeremy.blogdns.net
Euh?? personnelement je ne te conseil pas de faire sauter le viewstate
sur des controls qui te servent à gérer des données, sur le reste je
comprend bien ton approche j'en fais de même.
par contre sur des controles de donnée, je suis un peu tenté de te dire
que c'est là qu'opère la magie du viewstate donc ... enable = true ;)
--
Jérémy JEANSON
MCP
http://jeremy.blogdns.net
Euh?? personnelement je ne te conseil pas de faire sauter le viewstate sur des controls qui te servent à gérer des données, sur le reste je comprend bien ton approche j'en fais de même.
par contre sur des controles de donnée, je suis un peu tenté de te dire que c'est là qu'opère la magie du viewstate donc ... enable = true ;) -- Jérémy JEANSON MCP http://jeremy.blogdns.net
Jérémy Jeanson
Justement les viewstate servent pour les controls de données donc ton erreur est certainement provoqué par le manque de viewstate car j'utilise régulièrement ce genre de controls et tout marche bien.
Je suis d'accord avec toi pour les autres controls, mais dans ton cas en faisant sauter le viewstate je pense que tu vas te compliquer la vie. -- Jérémy JEANSON MCP http://jeremy.blogdns.net
Justement les viewstate servent pour les controls de données donc ton
erreur est certainement provoqué par le manque de viewstate car
j'utilise régulièrement ce genre de controls et tout marche bien.
Je suis d'accord avec toi pour les autres controls, mais dans ton cas en
faisant sauter le viewstate je pense que tu vas te compliquer la vie.
--
Jérémy JEANSON
MCP
http://jeremy.blogdns.net
Justement les viewstate servent pour les controls de données donc ton erreur est certainement provoqué par le manque de viewstate car j'utilise régulièrement ce genre de controls et tout marche bien.
Je suis d'accord avec toi pour les autres controls, mais dans ton cas en faisant sauter le viewstate je pense que tu vas te compliquer la vie. -- Jérémy JEANSON MCP http://jeremy.blogdns.net
Jérémy Jeanson
oups j'avais annulé un message de peur de ne pas être clair et je me rencontre que j'ai un doublon...
pardon pour les admins :( -- Jérémy JEANSON MCP http://jeremy.blogdns.net
oups j'avais annulé un message de peur de ne pas être clair et je me
rencontre que j'ai un doublon...
pardon pour les admins :(
--
Jérémy JEANSON
MCP
http://jeremy.blogdns.net