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 :

[C#/SqlServer 2005] Comment remplir une DB à partir d'un formulaire ?


Sujet :

Windows Forms

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2006
    Messages : 25
    Points : 11
    Points
    11
    Par défaut [C#/SqlServer 2005] Comment remplir une DB à partir d'un formulaire ?
    Bonsoir a tous,

    Need Help!!!!!!
    Je voudrai savoir comment on fait pour faire une nouvelle insertion dans un DB.
    Je travaille avec visual studio 2005, sql server 2005 et en C#.

    D'avance merci pour votre aide
    Clarissa

  2. #2
    Membre éprouvé Avatar de guitoux1
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 011
    Points : 1 256
    Points
    1 256
    Par défaut
    c'est du SQL : INSERT INTO <matable> (<champ1>, <champ2>, ...) VALUES (<valeurChamp1>, <valeurChamp2>, ...)

  3. #3
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Je crois que vous devriez commencer par lire les tutos ADO.Net et ensuite seulement nous poser une question précise sur ce que vous n'arrivez pas à appliquer. Expliquez nous déjà ce que vous avez fait car là , on ne sait pas si votre souci est lié à l'accès aux données ou au DataBinding ou je ne sais quoi encore. De plus faites l'effort svp de respecter l'organisation des forums en postant au bon endroit, j'ai également dû éditer votre titre pour le rendre un peu plus conforme aux règles. Allons Clarissa2006, il faut vous reprendre
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2006
    Messages : 25
    Points : 11
    Points
    11
    Par défaut
    Voici le code que jai mis :
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    string nom = tb_ajtNom.Text;
    float prix = Single.Parse (tb_ajtPrix.Text);
     
    string stringconnect = "Data Source=blabla;Initial
     Catalog=commande;Integrated Security=True";
    SqlConnection connection = new SqlConnection(stringconnect);
    connection.Open();
    SqlCommand command = new SqlCommand("insert into Produit
     (IdProduit,Denomination,Prix) values (4,nom,prix)",connection);
    SqlDataReader reader = command.ExecuteReader();
    object[] row = null;
    while (reader.Read())
    {
       if (row == null)
       row = new object[reader.FieldCount];
       reader.GetValues(row);
       for (int i = 0; i < row.GetLength(0); i++)
       {
          if (row[i] != DBNull.Value)
             Console.Write(row[i]);
          else
             Console.Write("NULL");
          if (i < row.GetUpperBound(0))
             Console.Write("|");
       }
       Console.WriteLine();
    }
    reader.Close();
    connection.Close();
    mais il me donne une erreur pour le nom et le prix....
    Les tb_ajtNom et tb_ajtPrix vienne d'un formulaire....(textbox) et je vois pas pourquoi cela ne fonctionne pas....
    Le Id =4 c just pour un essai je v mettre cela dans un get pour avoir le id suivant de la table.

    Merci pour votre aide

  5. #5
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    On pourrait voir le message d'erreur stp
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  6. #6
    Membre éprouvé Avatar de guitoux1
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 011
    Points : 1 256
    Points
    1 256
    Par défaut
    La c'est vraiment du SQL (donc pas le bon forum)

    Voici le bon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "insert into Produit (IdProduit,Denomination,Prix) values (4,'nom','prix')"

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2006
    Messages : 25
    Points : 11
    Points
    11
    Par défaut
    bien vu pour les ' '. merci

    maintenant voila autre chose message d'erreur >>
    Cannot insert explicit value for identity column in table 'Produit' when IDENTITY_INSERT is set to OFF.
    l'erreur surligne la ligne suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SqlDataReader reader = command.ExecuteReader();
    toujours le meme code....

  8. #8
    Membre éprouvé Avatar de guitoux1
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 011
    Points : 1 256
    Points
    1 256
    Par défaut
    Si IdProduit est en autoincrémentation, il faut pas le préciser dans le requête insert, il se fera tout seul, donc ça donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "insert into Produit (Denomination,Prix) values ('nom','prix')"

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2006
    Messages : 25
    Points : 11
    Points
    11
    Par défaut
    Punese ca me soule toutes ces erreurs.....

    Maintenant il en a une autre...
    Error converting data type varchar to float.
    j
    e suppose que c'est lier a :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    float prix = Single.Parse(tb_ajtPrix.Text);
    Le textbox converti en float pour la DB, non?

    Merci pour ton aide precieuse!

  10. #10
    Membre éprouvé Avatar de guitoux1
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 011
    Points : 1 256
    Points
    1 256
    Par défaut
    tu veux in float, mais tu utilise single.parse ?

    Fait plutot
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    float prix = float.Parse(tb_ajtPrix.Text);
    A condition que le contenu du textbox soit bien convertible en float bien évidement.

    Remarque : pour un prix (un montant), mieux vaut utiliser double. Garde float pour les taux (pourcentages)

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2006
    Messages : 25
    Points : 11
    Points
    11
    Par défaut
    >>A condition que le contenu du textbox soit bien convertible en float bien évidement.

    Je comprend pas trop ce que tu veux dire par la...
    (c'est de la que vient le probleme je pense...)

  12. #12
    Membre éprouvé Avatar de guitoux1
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 011
    Points : 1 256
    Points
    1 256
    Par défaut
    ben si dans ta textbos ta "mon papa aime les vieilles dames", ben tu va pas pouvoir convertir ça en : 12.50.
    C'est un exemple bien sûr, je connais pas ton papa de toute façon

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2006
    Messages : 25
    Points : 11
    Points
    11
    Par défaut
    oui ok mais je fais cela comment???
    Ya aussi c'est que jai mis une fonction pour pas pouvoir introduire des lettres dans ce textbox :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
            private void tb_ajtPrix_KeyPress(object sender, KeyPressEventArgs e)
            {
                if ((!char.IsDigit(e.KeyChar)) && (!char.IsControl(e.KeyChar)))
                {
                    e.Handled = true;
                }
            }

  14. #14
    Membre éprouvé Avatar de guitoux1
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 011
    Points : 1 256
    Points
    1 256
    Par défaut
    Pour savoir si tu peux parser un string en float :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    float prix;
    if (float.TryParse(tb_ajtPrix.Text, out prix))
       // Cas ok tu peux, le résultat du convert est dans prix
    else
       // Cas ça n'a pas marché.

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2006
    Messages : 25
    Points : 11
    Points
    11
    Par défaut
    Cela ne fonctionne pas et ca donne toujours la meme erreur....

  16. #16
    Membre éprouvé Avatar de guitoux1
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 011
    Points : 1 256
    Points
    1 256
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    float prix;
    if (float.TryParse(tb_ajtPrix.Text, out prix))
       // Cas ok tu peux, le résultat du convert est dans prix
    else
       // Cas ça n'a pas marché.
    Ce code te retourne une erreur de type Error converting data type varchar to float ???
    Impossible, vu que ce message d'erreur provient de la BDD. Je crois que ton PB n'est pas de convertir le contenu de la textbox en float (quoi qu'il faille le faire), mais de la façon dont tu passes ta valeur float à ta requête SQL.

  17. #17
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2006
    Messages : 25
    Points : 11
    Points
    11
    Par défaut
    comment passer ma valuer float a ma requete alors?

  18. #18
    Membre éprouvé Avatar de guitoux1
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 011
    Points : 1 256
    Points
    1 256
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO Produit (Denomination,Prix) VALUES ('nom','150.12')
    ou alors

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO Produit (Denomination,Prix) VALUES ('nom',150.12)
    je sais plus

  19. #19
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2006
    Messages : 25
    Points : 11
    Points
    11
    Par défaut
    ben je recupere cela d'un texbox dou tout le probleme......

  20. #20
    Membre éprouvé Avatar de guitoux1
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 011
    Points : 1 256
    Points
    1 256
    Par défaut
    ?? pourquoi il autait-il un problème ?? Bon en gros ce que t'as à faire est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    float prix;
    if (float.TryParse(tb_ajtPrix.Text, out prix))
       // ajout dans la BDD
       string sql = "INSERT INTO Produit (Denomination,Prix) VALUES
     ('NomDuProduit','" + prix.ToString("n2") + "')";
      // reste du code pour ajout en BDD
    else
       // Cas ça n'a pas marché. par exemple, envoi d'une exception
       throw new InvalidCastException("La valeur saisie comme prix n'est pas
     valide");
    ou alors :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    float prix;
    if (float.TryParse(tb_ajtPrix.Text, out prix))
       // ajout dans la BDD
       string sql = "INSERT INTO Produit (Denomination,Prix) VALUES
     ('NomDuProduit'," + prix.ToString("n2") + ")";
      // reste du code pour ajout en BDD
    else
       // Cas ça n'a pas marché. par exemple, envoi d'une exception
       throw new InvalidCastException("La valeur saisie comme prix n'est pas
     valide");
    Je vois pas comment te macher plus le travail là.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 2
    Dernier message: 10/09/2008, 21h14
  2. Réponses: 6
    Dernier message: 26/06/2008, 03h53
  3. comment remplir une checkedlistbox à partir d'une autre ?
    Par maxland dans le forum Windows Forms
    Réponses: 13
    Dernier message: 11/06/2008, 16h33
  4. Réponses: 4
    Dernier message: 04/06/2007, 10h14
  5. Réponses: 2
    Dernier message: 26/09/2006, 11h14

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