Bonjour,

J'ai 2 tables:
commande: reference (primary key), reference_projet(decimal(18,0)), reference_budget(decimal(18,0), nom_budget(varchar(50)
budget: reference (primary key, qui est commande.reference_budget), nom(varchar(50))
et 2 pages web :
commande: dropdownlist nom_budget, listant tous les budgets du projet auquel appartient cette commande + 'Non référencé' (qui n'appartient à aucun projet)
budget: gridviewBudget avec la commande 'supprimer' pour chaque ligne
Une commande est associée à un budget, si le budget est supprimé (à partir de la page budget), les commandes ayant ce budget vont remplacer ce budget supprimé par 'Non référencé' dans leur dropdownlist

Cela marche quand le dernier budget supprimé du gridviewBudget n'est associé à aucune commande.
Ex:budgetA, budgetB, budgetC
commande1: budgetA
commande2: budgetB
si on supprime budgetA, puis budgetB, puis budgetC, ca marche. Si on supprime budgetA, budgetC, budgetB, erreur:

"L'argument spécifié n'était pas dans les limites de la plage des valeurs valides. Nom du paramètre : value
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.ArgumentOutOfRangeException: L'argument spécifié n'était pas dans les limites de la plage des valeurs valides. Nom du paramètre : value
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:
[ArgumentOutOfRangeException: L'argument spécifié n'était pas dans les limites de la plage des valeurs valides.
Nom du paramètre : value]
System.Web.UI.WebControls.GridView.set_SelectedIndex(Int32 value) +1352651
System.Web.UI.WebControls.GridView.HandleDeleteCallback(Int32 affectedRows, Exception ex) +368
System.Web.UI.DataSourceView.Delete(IDictionary keys, IDictionary oldValues, DataSourceViewOperationCallback callback) +137
System.Web.UI.WebControls.GridView.HandleDelete(GridViewRow row, Int32 rowIndex) +714
System.Web.UI.WebControls.GridView.HandleEvent(EventArgs e, Boolean causesValidation, String validationGroup) +869
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
"
Pourquoi cette différence? Merci de vos aides