Bonjour,
j'ai un problème qui m'empêche d'avancer.
J'ai un formulaire de remplissage d'une demande de transport et dans ce formulaire j'ai un partie avec des checkbox qui permet de selectionner les conditions particulières.

il se trouve que j'ai :

une table demande où je stocke mes demandes (demande (Dem_intID, ...))

une table demande_condition qui relie ma table demande à ma table condition (demande_condition (DC_intDemande#, DC_intCondition#))

Enfin une table condition avec mes conditions stockées (condition(Con_intID, Con_strLibelle))

Lors de l'ajout d'une nouvelle demande je souhaiterais faire en sortie qu'en fonction des checbox qui sont remplies j'ajoute à ma table demande_condition l'id de la demande que je vais ajouter + l'id de la condition à laquelle elle correspond.

Pour cela j'ai fais un repeater:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 <asp:Repeater runat="server" ID="RepeaterCondition">
                                    <ItemTemplate>
                                        <tr>
                                            <td>
                                                <asp:CheckBox ID="Condition" value='<%# DataBinder.Eval(Container.DataItem, "Con_intID") %>' Text='<%# DataBinder.Eval(Container.DataItem, "Con_strLibelle") %>' runat="server"  />
                                                <asp:HiddenField ID="ConditionID" Value='<%# DataBinder.Eval(Container.DataItem, "Con_intID")%>' runat="server" />
                                            </td>
                                        </tr>
                                    </ItemTemplate>                                    
                                </asp:Repeater>


Les problèmes que je recontre sont :

--> que rien ne s'ajoute dans ma table demande_condition alors que la demande est bien ajoutée à ma table demande.

-->A chaque fois que j'ajoute une demande avec une case de cochée j'ai le message suivant:

L'instruction INSERT est en conflit avec la contrainte FOREIGN KEY "FK_T_TRANS_DEMANDE_T_TRANS_DEMANDE_CONDITION". Le conflit s'est produit dans la base de données "DemandeDeTransport", table "dbo.T_TRANS_DEMANDE", column 'Dem_intID'. L'instruction a été arrêtée.
(ps : l'ajout de la demande se fait quand même )

--> Enfin si je teste la valeur de lDemande.Dem_intID; avec un throw new exception cela me retourne un id ayant la valeur 0 (le problème doit venir de là). Comment récupérer le numéro de la demande en cours d'ajout ?

EDIT : problème résolu j'ai utilisé une procédure stockée.



Merci d'avance !