none
Comment récupéré l'id? RRS feed

  • Question

  • Bonjour !

     

    voici mon scénario:

     

    1 form, 1 datagridview 4 boutons

     

     

    1 bouton: Affiche les recettes...[OK]

    1 bouton: Affiche les composants de la recette...[OK]

    1 bouton: Ajouter un composant se mets visible.....[Ok]

    1 Double-clic sur une RowSelected : Ajoute le composant double-clicked à la recette.

     

    Le problème, comment je récupère l'id dans cette même forme, alors que mon dataGridView change tout le temps?

     

    Je veux dire ->

     

    Affiche les recette c'est un simple select, et quand je clic pour afficher les composants de la recette c'est un select where id=" + idRecette +";

    Puis la je perds l'id car je clic sur "Ajouter un thé" (par exemple), qui me fait un select * sur les thés. Donc, je perds idRecette et ne peux pas faire ma requete insert into recette (id, recette, element) values('', "+ idRecette + ", " + element +");

     

    Vous comprennez mon problème?

     

    Meilleure salutations !

    vendredi 12 septembre 2008 06:41

Réponses

  • L'idéal est d'identifier lorsque tu est en train d'afficher une recette. Puis de stocker l'id sélectionné lorsque tu le sélectionne. Explication:

    Tu dois créer 2 variables:

    Int32 IdRecetteEnCours;

    Boolean isDisplayingRecettes; (argh du franglais à mort )

     

    Lorsque tu cliques sur le premier bouton tu mets IdRecetteEnCours à true et lorsque tu cliques sur un des autres boutons tu le mets à false.

    Ce boolean te permets donc de savoir si ton affichage en cours est une recette ou autre chose.

     

    Maintenant dans l'évènement de la gridview qui correspond à la ligne (genre SelectionChange ou autre chose) tu récupères l'ID sélectionné et tu le stockes dans IdRecetteEnCours.

    Cela te permet de savoir quelle à été la dernière recette  sélectionnée et le tour est joué !!

    vendredi 12 septembre 2008 07:13

Toutes les réponses

  • L'idéal est d'identifier lorsque tu est en train d'afficher une recette. Puis de stocker l'id sélectionné lorsque tu le sélectionne. Explication:

    Tu dois créer 2 variables:

    Int32 IdRecetteEnCours;

    Boolean isDisplayingRecettes; (argh du franglais à mort )

     

    Lorsque tu cliques sur le premier bouton tu mets IdRecetteEnCours à true et lorsque tu cliques sur un des autres boutons tu le mets à false.

    Ce boolean te permets donc de savoir si ton affichage en cours est une recette ou autre chose.

     

    Maintenant dans l'évènement de la gridview qui correspond à la ligne (genre SelectionChange ou autre chose) tu récupères l'ID sélectionné et tu le stockes dans IdRecetteEnCours.

    Cela te permet de savoir quelle à été la dernière recette  sélectionnée et le tour est joué !!

    vendredi 12 septembre 2008 07:13
  • Je vais essayé et te tiens au courrant, merci bien.

     

    Dis moi, tu aurais du temps aujourd'hui, le soir ce week ou début de semaine prochaine pour du sharedview? Pis tu peux aussi regarder le problème xml? Smile

     

     

    Merci beaucoup :}

     

    vendredi 12 septembre 2008 07:16
  • Salut,

     

    heu...là du coup jsuis pas trop sur de comprendre, excuse moi ^^

     

    Voici un code:

    Code Snippet

     

    private void kryptonRibbonGroupButton15_Click(object sender, EventArgs e)

    {

    if (kryptonRibbonGroupButton15.TextLine1 == "Afficher/Editer une recette")

    {

    string id = (string)(kryptonDataGridView1.CurrentRow.Cells["id"].Value as int?).GetValueOrDefault(-1).ToString();

    //Mise a jour du dtview

    cGestRecette.viewDetailRecette(id);

    myDataView = dataBase.myDataTable.DefaultView;

    this.kryptonDataGridView1.DataSource = myDataView;

    this.kryptonDataGridView1.Invalidate();

    this.groupAddOrDeleteForRecette.Visible = true;

    this.kryptonRibbonGroupButton15.TextLine1 = "Afficher toutes les recettes";

    }

    else if (kryptonRibbonGroupButton15.TextLine1 == "Afficher toutes les recettes")

    {

    cGestRecette.viewRecette();

    myDataView = dataBase.myDataTable.DefaultView;

    this.kryptonDataGridView1.DataSource = myDataView;

    cGestThe.UpdateHeaders(ref this.kryptonDataGridView1, new string[] { "id", "category", "catName" });

    this.kryptonDataGridView1.Invalidate();

    this.groupAddOrDeleteForRecette.Visible = false;

    kryptonRibbonGroupButton15.TextLine1 = "Afficher/Editer une recette";

    }

    }

     

     

     

    Est-ce que tes 2 recettes je les mets dans le premier if?

     

     

    L'idéal pour ce problème serait un sharedView, car j'ai d'autre soucis que je voudrais que tu vois comment je fais pour me corriger.

     

    Meilleures salutations !

    mardi 16 septembre 2008 06:53