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

C# Discussion :

insertion de données nulles


Sujet :

C#

  1. #1
    Membre régulier Avatar de zabdaniel
    Profil pro
    Inscrit en
    Février 2007
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2007
    Messages : 175
    Points : 86
    Points
    86
    Par défaut insertion de données nulles
    Bonjour 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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
                bool bret = false;
                try
                {
                    myDBManager = new Tools.DBManager(Variables.Stock, 1);
                    if (myDBManager.open())
                    {
                        if (myDBManager.executeSQL("SELECT * FROM MachineCorrespondance WHERE ID_ENR=" + idMachine))
                        {
                            nbDiamCorps = 0;
                            while (myDBManager.read())
                            {
                                myDBManager.getDouble("DIAMCORPS", ref TABdiamCorps[nbDiamCorps]);
                                if (nbDiamCorps == 0)
                                    myDBManager.getDouble("DIAMFIL", ref diamFil);
                                nbDiamCorps++;
                            }
                        }
                    }
                }
                catch (Exception ex)
                {
                    bret = false;
                    Variables.myLog.WriteError("Machine Erreur WriteData : " + ex.ToString());
                }
                finally { myDBManager.close(); }
                return bret;
    Je cherche à insérere les données simplement rien n'est rentré et je ne comprend pas pourquoi qulqu'un pourrait m'aider s'il vous plait ?
    Merci

  2. #2
    Membre éclairé Avatar de ppphil
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2007
    Messages : 612
    Points : 685
    Points
    685
    Par défaut
    Citation Envoyé par zabdaniel Voir le message
    "SELECT * FROM MachineCorrespondance
    Je cherche à insérerer les données...
    ?????!???!!!? Tu peux expliquer ?

  3. #3
    Membre régulier Avatar de zabdaniel
    Profil pro
    Inscrit en
    Février 2007
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2007
    Messages : 175
    Points : 86
    Points
    86
    Par défaut
    Citation Envoyé par ppphil Voir le message
    ?????!???!!!? Tu peux expliquer ?
    Excuse moi je me suis trompée c'était le début de moncode voici le code d'insertion :
    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
     
    TABdiamCorps[nbDiamCorps] = NewDiamCorps;
                    nbDiamCorps++;
     
                    try
                    {
                        myDBManager = new Tools.DBManager(Variables.Stock, 1);
                        if (myDBManager.open())
                            bret = myDBManager.executeWriter("INSERT INTO MachineCorrespondance(ID_ENR,DIAMCORPS,DIAMFIL) VALUES ("+idMachine+","+ NewDiamCorps+","+diamFil+")");
                    }
                    catch (Exception ex)
                    {
                        bret = false;
                        Variables.myLog.WriteError("Machine Erreur AddDiamCorps : " + ex.ToString());
                    }
                    finally { myDBManager.close(); }

  4. #4
    Membre éclairé Avatar de ppphil
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2007
    Messages : 612
    Points : 685
    Points
    685
    Par défaut
    C'est quoi ton DBManager ?
    Quelle est le type des 3 champs dans lesquels tu insère des données ?
    C'est quoi ta base de données ?
    Essaie de rediriger ta string d'insert vers un fichier texte, tu copie ensuite ta string et tu l'envoie dans le manager de ton sgbd (MysqlAdministrator, ou SQLServerManagement... p.ex)

  5. #5
    Membre régulier Avatar de zabdaniel
    Profil pro
    Inscrit en
    Février 2007
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2007
    Messages : 175
    Points : 86
    Points
    86
    Par défaut
    Citation Envoyé par ppphil Voir le message
    C'est quoi ton DBManager ?
    Quelle est le type des 3 champs dans lesquels tu insère des données ?
    C'est quoi ta base de données ?
    Essaie de rediriger ta string d'insert vers un fichier texte, tu copie ensuite ta string et tu l'envoie dans le manager de ton sgbd (MysqlAdministrator, ou SQLServerManagement... p.ex)
    merci beaucoup

    Mon DBManager est une classe qui permet de se connecter à la bdd sans avoir à chaque fois à réécrire tout le code, et il marche puisque j'ai déjà fait d'autres insertions, suppression ou sélection dans d'autre windowsform.
    le type des trois champs est de type numérique.
    Ma bdd est un .dbf
    Et quand je fais ma requête d'insertion dans mon sgbd en remplaçant mes variables par des chiffres, ça marche pas de problèmes, je ne comprend pas alors d'où vient le problème...

  6. #6
    Expert éminent sénior

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Points : 12 465
    Points
    12 465
    Par défaut
    Salut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "INSERT INTO MachineCorrespondance(ID_ENR,DIAMCORPS,DIAMFIL) VALUES ("+idMachine+","+ NewDiamCorps+","+diamFil+")"
    quels sont les types de idMachine, NewDiamCorps, et diamFil ?

    Essaie de rediriger ta string d'insert vers un fichier texte, tu copie ensuite ta string et tu l'envoie dans le manager de ton sgbd (MysqlAdministrator, ou SQLServerManagement... p.ex)
    +1, si ca se trouve, tu as un double dans le tas, qui est converti a un format qui n'est pas compris par ta base...

    et en passant, faire des insert comme ca, c'est mal, si tu as la main sur le dbManager, ce serait une idee de remplacer les requetes par des requetes parametrees...

    Mon Blog

    The Cake is still a lie !!!



    Vous voulez contribuer à la rubrique .NET ? Contactez-moi par MP.
    Vous voulez rédiger des articles pour la rubrique .NET ? Voici la procédure à suivre.

  7. #7
    Membre éclairé Avatar de ppphil
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2007
    Messages : 612
    Points : 685
    Points
    685
    Par défaut
    Eh !! si c'est du numérique, tes variables sont des variables numériques ! Non ?
    Alors si tu faisais comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    bret = myDBManager.executeWriter("INSERT INTO MachineCorrespondance(ID_ENR,DIAMCORPS,DIAMFIL) VALUES ("+idMachine.ToString()+","+ NewDiamCorps.ToString()+","+diamFil.ToString()+")");
    tu crois pas que ça irais mieux ????
    Ton select c'est une chaine de caractères !!!

    En plus pvialatte a parfaitement raison !

  8. #8
    Membre régulier Avatar de zabdaniel
    Profil pro
    Inscrit en
    Février 2007
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2007
    Messages : 175
    Points : 86
    Points
    86
    Par défaut
    Merci beaucoup à tous pour votre aide je vais voir ce que vous me dites et je vous donne des nouvelles

  9. #9
    Membre averti
    Inscrit en
    Décembre 2008
    Messages
    256
    Détails du profil
    Informations personnelles :
    Âge : 47

    Informations forums :
    Inscription : Décembre 2008
    Messages : 256
    Points : 311
    Points
    311
    Par défaut
    Une autre piste.

    Tu écris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    if (myDBManager.open())
       bret = myDBManager.executeWriter("INSERT INTO MachineCorrespondance(ID_ENR,DIAMCORPS,DIAMFIL) VALUES ("+idMachine+","+ NewDiamCorps+","+diamFil+")");
    Si myDBManager.open() renvoie false, ton insertion ne se fait pas et tu n'as aucun message d'avertissement.
    Il y a toujours au moins deux solutions à un problème.

    http://software-design-development.blogspot.com/

  10. #10
    Membre éclairé Avatar de ppphil
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2007
    Messages : 612
    Points : 685
    Points
    685
    Par défaut
    Je reviens sur ce qu'a dit pvialatte au sujet des requêtes paramétrées.
    Va voir là :
    developpez.net
    et encore là (un très bon article bien qu'îl utilise des interfaces alors que le framework propose des classes génériques actuellement) :
    bonnes-pratiques-acces-donnees

  11. #11
    Expert éminent sénior

    Avatar de Philippe Vialatte
    Homme Profil pro
    Architecte technique
    Inscrit en
    Juillet 2004
    Messages
    3 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Juillet 2004
    Messages : 3 029
    Points : 12 465
    Points
    12 465
    Par défaut
    Citation Envoyé par ppphil Voir le message
    un très bon article bien qu'îl utilise des interfaces alors que le framework propose des classes génériques actuellement
    euh...un tres bon article tout court

    Le fait que l'article utilise les interface IDbCommand et IDbParameter reponds plutot, amha, a la bonne pratique de developper pour une interface, et pas pour une implementation ...

    Allez, hop, tu sors

    Mon Blog

    The Cake is still a lie !!!



    Vous voulez contribuer à la rubrique .NET ? Contactez-moi par MP.
    Vous voulez rédiger des articles pour la rubrique .NET ? Voici la procédure à suivre.

  12. #12
    Membre régulier Avatar de zabdaniel
    Profil pro
    Inscrit en
    Février 2007
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2007
    Messages : 175
    Points : 86
    Points
    86
    Par défaut
    Merci beaucoup à tous
    bug résolu quand j'ai utilisé une requête paramétrée merci pour vos liens

  13. #13
    Membre éclairé Avatar de ppphil
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    612
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2007
    Messages : 612
    Points : 685
    Points
    685
    Par défaut
    Dis-moi pvialatte, je ne comprends pas bien ce que tu viens de dire... (j'suis pas non plus un expert en prog, loin s'en faut...)
    Dans le cas du DBCommand. Il s'agit d'un objet générique dont héritent les SqlCommand et autres Oracle-Mysql-OdbcCommand.
    Ou est la différence entre
    - faire retourner à la fonction CreateCommand un IDBCommand
    - ou un DbCommand
    Dans la fonction, on retournera le DBCommand selon le type de sgbd. Par la suite on utilise le DBCommand qui est soit un SqlCommand soit un autre. Non ?
    Si tu veux bien éclairer ma lanterne, car j'ai un peu du mal avec les Interfaces...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [1.x] insertion des données null formulaire imbriqué
    Par Ontolingua dans le forum Symfony
    Réponses: 5
    Dernier message: 02/09/2010, 12h48
  2. [MySQL] problème d'insertion d'une donnée nulle
    Par unmulot dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 26/06/2006, 16h49
  3. [Interbase 7] Problème d'insertion de données
    Par Tuscelan dans le forum InterBase
    Réponses: 12
    Dernier message: 19/11/2003, 22h58
  4. insertion de données
    Par m-l dans le forum SQL
    Réponses: 9
    Dernier message: 25/07/2003, 13h59
  5. [Postgresql] pb lors d'insertion de données
    Par bob20000 dans le forum Requêtes
    Réponses: 8
    Dernier message: 04/11/2002, 15h33

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