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 :

(débutant)requête sql 'insert' exécutée sans résultat!


Sujet :

C#

  1. #1
    Candidat au Club
    Inscrit en
    Mars 2009
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 5
    Points : 4
    Points
    4
    Par défaut (débutant)requête sql 'insert' exécutée sans résultat!
    Bonjour,

    Je suis débutant en programmation C# mais là je n'arrive pas à comprendre pourquoi la requête d'insertion est bien exécutée mais lorsque je consulte ma base de données je constate que la modification n'a pas eu lieu. Pourtant sqlCommand.ExecuteNonQuery() me retourne 1 m'indiquant que la requête à bien été exécutée.

    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
     
    using System;
    using System.Collections.Generic;
    using System.Data.SqlServerCe;
    using System.Text;
    using System.Text.RegularExpressions;
    using System.Configuration;
     
    namespace Testsql
    {
        class SqlCommands
        {
            static void Main(string[] args)
            {
     
                // exploitation du fichier de configuration [App.config]
                string connectionString = null;
                try
                {
                    connectionString = ConfigurationManager.ConnectionStrings["test.Properties.Settings.baseConnectionString"].ConnectionString;
                }
                catch (Exception e)
                {
                    Console.WriteLine("Erreur de configuration : {0}", e.Message);
                    return;
                }
     
                // affichage chaîne de connexion
                Console.WriteLine("Chaîne de connexion à la base : [{0}]\n", connectionString);
     
     
                // lecture-exécution des commandes SQL tapées au clavier
                string requête = null; // texte de la requête SQL
     
                requête = "insert into saison(annee) values(1) ";
     
                try 
                {
                 using (SqlCeConnection connexion = new SqlCeConnection(connectionString)) 
                 {
                 // ouverture connexion
                 connexion.Open();
                 // exécute sqlCommand avec requête de mise à jour
                 SqlCeCommand sqlCommand = new SqlCeCommand(requête, connexion);
                 Console.WriteLine(requête);
                 int nbLignes = sqlCommand.ExecuteNonQuery();
                 // affichage résultat
                 Console.WriteLine("Il y a eu {0} ligne(s) modifiée(s)", nbLignes);
                 //connexion.Close();
                 }
                } 
                catch (Exception ex) 
                {
                 // msg d'erreur
                 Console.WriteLine("Erreur d'accès à la base de données (" + ex.Message + ")");
                }    
            }
        }
    }

  2. #2
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2008
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 176
    Points : 372
    Points
    372
    Par défaut
    Salut,

    N'aurais tu pas utilisé une base de donnée SQL CE ?

    Car si c'est le cas, la base que tu ouvre quand tu développe et celle que tu "touche" quand tu lance ton programme ne sont pas les mêmes : celle utilisée par le programme est une copié (réinitialisée à chaque rebuild il me semble) de celle que tu crées avec le designer.

    C'est pourquoi tu ne vois pas (dans le designer de la base) les modification faîtes par ton programme.

    Je sais pas si j'ai été clair, dis moi si t'as pas compris (et si tu utilise bien SQL CE).

  3. #3
    Candidat au Club
    Inscrit en
    Mars 2009
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    j'ai essayé avec 2 bases crées avec microsoft visual c# 2008, l'une avec l'extension mdf et l'autre avec l'extension sdf mais c'est le même résultat.On dirait bien que je suis entrain de travailler sur une copie et non pas sur la base originale.Quelqu'un pourrait m'aider svp

  4. #4
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2008
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 176
    Points : 372
    Points
    372
    Par défaut
    Oui ben c'est bien se que je t'ai dis.

    Tu travail effectivement sur une copie, la copie de celle que tu crée dans Visual Studio.

    Pour en être sûr, fais des requête de sélection dans ton programme pour voir si tu retrouve bien les données insérées plus tôt.

    J'avais eut le même "problème" que toi une fois, avant de me rendre compte que je bossais sur la copie et que, lorsque j'ouvrais ma base avec Visual Studio, même après des insertions par mon programme, je n'avais pas les données précédemment insérées car j'ouvrais le "modèle" et non celle de "production".

  5. #5
    Candidat au Club
    Inscrit en
    Mars 2009
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    D'accord je confirme travailler sur une copie mais comment faire pour ouvrir la base de façon à ce que les modifications soit prises en compte?

  6. #6
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2008
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 176
    Points : 372
    Points
    372
    Par défaut
    Essaye d'ouvrir la base du dossier Debug ou Release par l'explorateur de serveur avec Visual Studio.

    Mais bon, selon moi, il ne sert qu'à créer la base (création + insertions de base), je ne pense pas qu'il puisse faire office de manager de base. Essaye et dis nous si tu arrive le faire.

  7. #7
    Membre averti
    Homme Profil pro
    Inscrit en
    Avril 2008
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 176
    Points : 372
    Points
    372
    Par défaut
    Re. Je viens d'essayer et il semble qu'en choisissant une base de type SQL CE, tu choisis ta base (celle utilisée par ton logiciel) et il l'ouvre.

Discussions similaires

  1. Exécuter des requête SQL (avec ou sans PHP) dans javascript
    Par mir540 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 20/11/2009, 10h03
  2. requête sql : caractères accentués et résultat nul
    Par mappy dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 28/08/2006, 12h27
  3. [MySQL] Requête SUBSTRING et CHAR_LENGTH sans résultat
    Par Anduriel dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 25/08/2006, 12h50
  4. [MySQL] Filtrage par ma requête sql en fonction du résultat d'un combo box
    Par digger dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 21/02/2006, 17h25
  5. [débutante] Requête SQL
    Par a_nana dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 24/11/2005, 21h51

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