IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

bouton radioButton C #


Sujet :

Windows Forms

  1. #1
    Membre averti
    Femme Profil pro
    Inscrit en
    Août 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Août 2012
    Messages : 23
    Par défaut bouton radioButton C #
    bonjour tout le monde.
    je bloque sur un point.
    je veux utiliser le bouton radioButton dans ma form pour sélectionner l'un parmi 2 choix: préventif ou correctif et ensuite je veux que le choix sélectionné soit enregistrer dans ma base de données.
    voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    SqlConnection cs = new SqlConnection("server= ----; database= ----;User ID= -----;Password= ----");
    DataSet ds = new DataSet();
    SqlDataAdapter da = new SqlDataAdapter();
    if (radioButton1.Checked)
                    {
                        da.InsertCommand = new SqlCommand("INSERT INTO Table_Test (Préventif_Correctif) VALUES ('Préventif')", cs);
                        da.InsertCommand.Parameters.Add("@Préventif_Correctif", SqlDbType.VarChar).Value = radioButton1.Text;
                    }
                    else if (radioButton2.Checked)
                    {
                        da.InsertCommand = new SqlCommand("INSERT INTO Table_Test (Préventif_Correctif) VALUES ('Correctif')", cs);
                        da.InsertCommand.Parameters.Add("@Préventif_Correctif", SqlDbType.VarChar).Value = radioButton2.Text;
                    }
    cs.Open();
    da.InsertCommand.ExecuteNonQuery();
    cs.Close();
    quand je clique sur start debugging, une erreur apparaît au niveau de : da.InsertCommand.ExecuteNonQuery();
    Les données de chaîne ou binaires seront tronquées.
    L'instruction a été arrêtée.

  2. #2
    Membre actif
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Janvier 2011
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2011
    Messages : 71
    Par défaut
    Salut,

    Cela veut tout simplement dire que tu essai de mettre dans un champ de ta table une valeur trop grande.
    Par exemple mettre une valeur de 30 caractères dans un champ prévu pour 20.
    Ce n'est pas une erreur de code mais SQL.

  3. #3
    Membre averti
    Femme Profil pro
    Inscrit en
    Août 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Août 2012
    Messages : 23
    Par défaut
    Salut
    oui c'était ça merci.
    si vous le permettez, j'ai une autre question concernant la suppression:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    DialogResult dr;
                dr = MessageBox.Show("Etes-vous sûr?\n La suppression est irreversible.", "Confirmer la suppression?", MessageBoxButtons.YesNo);
                if (dr == DialogResult.Yes)
                {
                    da.DeleteCommand = new SqlCommand(" Delete FROM TableTest where Numéro=@Numéro", cs);
                    da.DeleteCommand.Parameters.Add("@Numéro", SqlDbType.Int).Value = ds.Tables[0].Rows[tblBS.Position][0];
     
                    cs.Open();
                    da.DeleteCommand.ExecuteNonQuery();
                    cs.Close();
                }
                else
                {
                    MessageBox.Show("Suppression annulée.");
                }
    Mon problème consiste dans le fait que quelque soit la ligne que je sélectionne, il s'efface la première ligne.
    SVP help, c'est urgent.
    Merci à l'avance

  4. #4
    Membre actif
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Janvier 2011
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2011
    Messages : 71
    Par défaut
    A quoi correspond tblBS.Position ?
    Quand on met un debug sur cette ligne qu'elle est la valeur ?

  5. #5
    Membre averti
    Femme Profil pro
    Inscrit en
    Août 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Août 2012
    Messages : 23
    Par défaut
    en effet tblBS correspond à cela :
    BindingSource tblBS = new BindingSource();
    et j'ai pas compris ta question:
    Quand on met un debug sur cette ligne qu'elle est la valeur ?

  6. #6
    Membre actif
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Janvier 2011
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2011
    Messages : 71
    Par défaut
    Tu utilise Visual Studio ?
    Si oui, tu place le curseur sur la ligne, tu appuye sur la touche F9 de ton clavier.
    Tu voies apparaitre un rond rouge sur la gauche et ta ligne passe d'une autre couleur.
    Tu appuye sur la touche F5 de ton clavier pour lancer l'application en mode débug.
    Dès que tes actions conduisent à executer le code en question, tu va revenir dans Visual Studio et la en mettant ta souris sur le mot Position tu pourra voir la valeur s'afficher.

  7. #7
    Membre averti
    Femme Profil pro
    Inscrit en
    Août 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Août 2012
    Messages : 23
    Par défaut
    primo merci parceque tu prends la peine de m'expliquer en détails des trucs "banals".
    Secondo la valeur qui s'affiche est 0.

  8. #8
    Membre actif
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Janvier 2011
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2011
    Messages : 71
    Par défaut
    Ne serait il pas mieux de récupérer la valeur de "Numéro" directement à partir de ta grille ?
    Pour récupérer la valeur (avec un DataGridView) utilise :
    Si c'est une cellule qui est sélectionnée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dataGridView1.SelectedCells[0].OwningRow.Cells["NomDeTaColonne"].Value
    Si c'est une ligne entière qui est sélectionnée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dataGridView1.SelectedRows[0].Cells["NomDeTaColonne"].Value
    Bien sur je part du principe que tu ne peux sélectionner qu'une ligne ou qu'une cellule à la fois.

  9. #9
    Membre averti
    Femme Profil pro
    Inscrit en
    Août 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Août 2012
    Messages : 23
    Par défaut
    merci bien
    ça a marché à la perfection

  10. #10
    Membre averti
    Femme Profil pro
    Inscrit en
    Août 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Août 2012
    Messages : 23
    Par défaut
    ah une dernière question (si tu le permets bien sur):
    comment faire pour que que je voie l'élément que j'ai supprimé disparaître de la datgridview directement cad sans que je doive fermer la form et la ré-ouvrir ?
    j'éspère que j'étais claire
    à propos j'ai ajouter les deux commandes:
    ds.Clear();
    da.Fill(ds);
    mais ça ne marche pas :/

  11. #11
    Membre actif
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Janvier 2011
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2011
    Messages : 71
    Par défaut
    De rien,

    N'oublie pas de passer le statut de la discussion en "Résolu"

    Merci

  12. #12
    Membre actif
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Janvier 2011
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2011
    Messages : 71
    Par défaut
    Voici un bout de code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ((System.Data.DataRowView)dataGridView1.SelectedRows[0].DataBoundItem).Delete();
                ((System.Data.DataRowView)dataGridView1.SelectedCells[0].OwningRow.DataBoundItem).Delete();
    Prends la bonne ligne suivant si c'est une cellule ou une ligne de sélectionnée.
    J'ai pas testé mais je pense que c'est ça.

  13. #13
    Membre averti
    Femme Profil pro
    Inscrit en
    Août 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Août 2012
    Messages : 23
    Par défaut
    oui ça marche.
    thanks )

  14. #14
    Membre averti
    Femme Profil pro
    Inscrit en
    Août 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Août 2012
    Messages : 23
    Par défaut
    re-Salut.
    j'éspère que je ne vous ennui pas mais là j'ai un autre problème donc une autre question:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     da.UpdateCommand = new SqlCommand("UPDATE TableTest SET Thème=@Thème, Date=@Date,Anomalie_Amélioration=@Anomalie_Amélioration, Causes=@Causes, Action=@Action, Responsable=@Responsable,Délais=@Délais,Date_Réalisation=@Date_Réalisation, Vérification_Efficacité=@Vérification_Efficacité,@Efficacité, Commentaire_Suivi=@Commentaire_Suivi)", cs);   
                    da.UpdateCommand.Parameters.Add("@Thème", SqlDbType.VarChar).Value = dataGridView1.SelectedCells[0].OwningRow.Cells["Thème"].Value;
                   da.UpdateCommand.Parameters.Add("@Date", SqlDbType.DateTime).Value = dataGridView1.SelectedCells[0].OwningRow.Cells["Date"].Value;
                   da.UpdateCommand.Parameters.Add("@Anomalie_Amélioration", SqlDbType.VarChar).Value = dataGridView1.SelectedCells[0].OwningRow.Cells["Anomalie_Amélioration"].Value;
                   da.UpdateCommand.Parameters.Add("@Causes", SqlDbType.VarChar).Value = dataGridView1.SelectedCells[0].OwningRow.Cells["Causes"].Value;
                   da.UpdateCommand.Parameters.Add("@Action", SqlDbType.VarChar).Value = dataGridView1.SelectedCells[0].OwningRow.Cells["Action"].Value;
                   da.UpdateCommand.Parameters.Add("@Responsable", SqlDbType.VarChar).Value = dataGridView1.SelectedCells[0].OwningRow.Cells["Responsable"].Value;
                   da.UpdateCommand.Parameters.Add("@Délais", SqlDbType.DateTime).Value = dataGridView1.SelectedCells[0].OwningRow.Cells["Délais"].Value;
                   da.UpdateCommand.Parameters.Add("@Date_Réalisation", SqlDbType.DateTime).Value = dataGridView1.SelectedCells[0].OwningRow.Cells["Date_Réalisation"].Value;
                   da.UpdateCommand.Parameters.Add("@Vérification_Efficacité", SqlDbType.VarChar).Value = dataGridView1.SelectedCells[0].OwningRow.Cells["Vérification_Efficacité"].Value;
                   da.UpdateCommand.Parameters.Add("@Efficacité", SqlDbType.VarChar).Value = dataGridView1.SelectedCells[0].OwningRow.Cells["Efficacité"].Value;
                   da.UpdateCommand.Parameters.Add("@Commentaire_Suivi", SqlDbType.VarChar).Value = dataGridView1.SelectedCells[0].OwningRow.Cells["Commentaire_Suivi"].Value;
                   cs.Open();
                   da.UpdateCommand.ExecuteNonQuery();
                   cs.Close();
    quand j'essaie de modifier le thème, une erreur s'affiche:
    La variable scalaire "@Action" doit être déclarée.
    donc si ce n'est pas trop demandé, aide moi

  15. #15
    Membre actif
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Janvier 2011
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2011
    Messages : 71
    Par défaut
    C'est tout simple :
    Tu as juste écrit action sans "s" dans ta requête sql et avec le "s" quand tu définis le paramètre sql

  16. #16
    Membre averti
    Femme Profil pro
    Inscrit en
    Août 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Août 2012
    Messages : 23
    Par défaut
    oui c'était tout bête de ma part :/
    mais quand j'ai corrigé celà, une autre erreur surgit au niveau de:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    da.UpdateCommand.ExecuteNonQuery();
    Syntaxe incorrecte vers ','.

  17. #17
    Membre actif
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Janvier 2011
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2011
    Messages : 71
    Par défaut
    Tu as une erreur dans ta requête sql :
    C'est au niveau du champ efficacité ou tu ne met pas le :
    "=@efficacite"

  18. #18
    Membre averti
    Femme Profil pro
    Inscrit en
    Août 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Août 2012
    Messages : 23
    Par défaut
    oui tout à fait !!!
    et maintenant on me dit:
    Syntaxe incorrecte vers ')'.
    je perds toute ma concentration et j'arrive plus à déceler mes erreurs :'(

  19. #19
    Membre actif
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Janvier 2011
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2011
    Messages : 71
    Par défaut
    Supprimes tout simplement le ")" de ta requête sql à la fin

  20. #20
    Membre averti
    Femme Profil pro
    Inscrit en
    Août 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Août 2012
    Messages : 23
    Par défaut
    merci
    problème résolu
    un autre truc: j'ai essayé de faire la même astuce pour mettre à jour mes données mais le problème est que lorsque je modifie une cellule appartenant au champ "Thème3 par exemple c'est toute la colonne qui prend la même valeur et non pas seulement la cellule que j'ai modifiée.
    Voilà le code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
      da.UpdateCommand = new SqlCommand("UPDATE TableTest SET Thème=@Thème, Date=@Date,Anomalie_Amélioration=@Anomalie_Amélioration, Causes=@Causes, Actions=@Actions, Responsable=@Responsable,Délais=@Délais,Date_Réalisation=@Date_Réalisation, Vérification_Efficacité=@Vérification_Efficacité,Efficacité=@Efficacité, Commentaire_Suivi=@Commentaire_Suivi", cs);   
                   da.UpdateCommand.Parameters.Add("@Thème", SqlDbType.VarChar).Value = dataGridView1.SelectedCells[0].OwningRow.Cells["Thème"].Value;
                   da.UpdateCommand.Parameters.Add("@Date", SqlDbType.DateTime).Value = dataGridView1.SelectedCells[0].OwningRow.Cells["Date"].Value;
                   da.UpdateCommand.Parameters.Add("@Anomalie_Amélioration", SqlDbType.VarChar).Value = dataGridView1.SelectedCells[0].OwningRow.Cells["Anomalie_Amélioration"].Value;
                   da.UpdateCommand.Parameters.Add("@Causes", SqlDbType.VarChar).Value = dataGridView1.SelectedCells[0].OwningRow.Cells["Causes"].Value;
                   da.UpdateCommand.Parameters.Add("@Actions", SqlDbType.VarChar).Value = dataGridView1.SelectedCells[0].OwningRow.Cells["Actions"].Value;
                   da.UpdateCommand.Parameters.Add("@Responsable", SqlDbType.VarChar).Value = dataGridView1.SelectedCells[0].OwningRow.Cells["Responsable"].Value;
                   da.UpdateCommand.Parameters.Add("@Délais", SqlDbType.DateTime).Value = dataGridView1.SelectedCells[0].OwningRow.Cells["Délais"].Value;
                   da.UpdateCommand.Parameters.Add("@Date_Réalisation", SqlDbType.DateTime).Value = dataGridView1.SelectedCells[0].OwningRow.Cells["Date_Réalisation"].Value;
                   da.UpdateCommand.Parameters.Add("@Vérification_Efficacité", SqlDbType.VarChar).Value = dataGridView1.SelectedCells[0].OwningRow.Cells["Vérification_Efficacité"].Value;
                   da.UpdateCommand.Parameters.Add("@Efficacité", SqlDbType.VarChar).Value = dataGridView1.SelectedCells[0].OwningRow.Cells["Efficacité"].Value;
                   da.UpdateCommand.Parameters.Add("@Commentaire_Suivi", SqlDbType.VarChar).Value = dataGridView1.SelectedCells[0].OwningRow.Cells["Commentaire_Suivi"].Value;
                   cs.Open();
                   da.UpdateCommand.ExecuteNonQuery();
                   cs.Close();
    ceci mis à part le fait que quand j'ai ajouté une ligne à mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ((System.Data.DataRowView)dataGridView1.SelectedCells[0].OwningRow.DataBoundItem).Update();
    pour voir directement le changement dès que j'efectue une modification, l'erreur suivante apparaît:
    'System.Data.DataRowView' does not contain a definition for 'Update'.
    HELP

Discussions similaires

  1. Activer bouton en fonction de plusieurs radiobutton
    Par Invité dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 11/06/2009, 20h12
  2. Réponses: 7
    Dernier message: 27/03/2008, 15h02
  3. [JTable][RadioButton]Afficher groupe de boutons dans JTable
    Par leminipouce dans le forum Composants
    Réponses: 11
    Dernier message: 21/02/2006, 18h04
  4. Pop-up d'une dialog box a partir d'un bouton
    Par bobbyjack dans le forum MFC
    Réponses: 21
    Dernier message: 13/09/2005, 16h32
  5. Afficher/Masquer un bouton comme IE 6
    Par benj63 dans le forum C++Builder
    Réponses: 3
    Dernier message: 29/07/2002, 14h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo