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 :

Problème avec SQLite


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2009
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 72
    Par défaut Problème avec SQLite
    Bonsoir tout le monde,

    Donc voici mon problème, j'utilise SQLite pour gérer ma Base de donné et je programme en C#, tout marche nikel, mais une fois j'ai ajouter un enregistrement sans complété les autres champs, j'avais que le champs "ID" qui à etait rempli, et dés lorsque j'ai voulu supprimé cet enregistrement à l'aide de mon application et bein l'appli se bloque!!!! mais dés que j'essai de supprimer à l'aide de commande SQL dans le géstionnaire SQLite ça marche tres tres bien.

    J'espère avoir bien présenté mon problème, tout en espérant obtenir de l'aide de votre part.

    Je vous remercie.

  2. #2
    Membre chevronné Avatar de _PascalC_
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2008
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2008
    Messages : 220
    Par défaut
    C'est un peu dur te t'aider sans ligne de code ni message d'erreur .
    As-tu essayé de debuguer ton programme avec cette BDD et des points d'arrêt dans ta routine de suppression ?

    Pascal

  3. #3
    Membre confirmé
    Inscrit en
    Octobre 2009
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 72
    Par défaut
    merci _pascalc_ pour ta réponse, pour les messages d'erreur je n'obtiens aucun message car il n'y a vraiment pas d'erreur dans mon code, j'ai essayé differente manière de résoudre le même problème, mais c'est toujours la même chose.
    Dailleurs j'ai oublier de vous dire que quand je veux supprimer un enregistrement qui à tout les champs rempli, et bien ça marche impécablement.

    Donc pour tout vous dire, je ne sais pas dutout où se trouve le problème.

  4. #4
    Membre chevronné Avatar de _PascalC_
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2008
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2008
    Messages : 220
    Par défaut
    Normalement avec des points d'arrêt placés au bon endroit tu devrais voir rapidement ce qui cloche pourtant.
    Tu peux nous montrer ta méthode qui s'occupe de la suppression ?

    Pascal

  5. #5
    Membre confirmé
    Inscrit en
    Octobre 2009
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 72
    Par défaut
    Voici mon code Pascal:

    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
    try
                    {
                        // On crée un nouvel objet SQLiteConnectionStringBuilder.
                        SQLiteConnectionStringBuilder SQLCSB = new SQLiteConnectionStringBuilder();
     
                        // On définit nos paramètres.
                        SQLCSB.DataSource = "base_proj.db"; // La base de données à utiliser
                        SQLCSB.FailIfMissing = false; // Si la base n'existe pas, alors on la crée automatiquement
     
                        string ConnectionString = SQLCSB.ToString();
     
                        // On crée une connexion, le constructeur prend en paramètre la ConnectionString.
                        SQLiteConnection SQLC = new SQLiteConnection(ConnectionString);
     
                        // On ouvre la connexion.
     
                        SQLC.Open();
     
                        // Requete de récupération des clients.
                        SQLiteCommand SQLCmd = SQLC.CreateCommand();
                        SQLCmd.CommandText = "SELECT idf_client FROM client WHERE idf_client IN (SELECT idf_client FROM accompagnateur WHERE idf_accompagnateur= " + idf_client + ");";
                        SQLiteDataReader SQLDReader = SQLCmd.ExecuteReader();
     
                        while (SQLDReader.Read()) // Suppression de la liste des clients qui l'accompagne (mahréme).
                        {                        
                            string idf_cl = string.Format("{0}", SQLDReader["idf_client"]);
     
                            SQLiteCommand SQLCmd3 = SQLC.CreateCommand();
                            SQLCmd3.CommandText = "DELETE FROM client WHERE idf_client= " + idf_cl + " ;";
                            int ii = Int32.Parse(SQLCmd3.ExecuteNonQuery().ToString());
     
                            SQLiteCommand SQLCmd4 = SQLC.CreateCommand();
                            SQLCmd4.CommandText = "DELETE FROM accompagnateur WHERE idf_client= " + idf_cl + " ;";
                            int ii2 = Int32.Parse(SQLCmd4.ExecuteNonQuery().ToString());
                        }
     
                        SQLiteCommand SQLCmd2 = SQLC.CreateCommand();
                        SQLCmd2.CommandText = "DELETE FROM client WHERE idf_client= " + idf_client + " ;";                    
                        int taille = Int32.Parse(SQLCmd2.ExecuteNonQuery().ToString());
     
                        // On ferme la connexion.
     
                        SQLC.Close();
                    }
                    catch (Exception Ex)
                    {
                        // On affiche l'erreur.                    
                        MessageBox.Show("Erreur BD, erreur lors de la suppression du client");
                    }

  6. #6
    Membre chevronné Avatar de _PascalC_
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2008
    Messages
    220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2008
    Messages : 220
    Par défaut
    J'ai un peu de mal à comprendre la logique car d'après ton code "idf_client" correspondrait à l'identifiant d'un accompagnateur... mais aussi à l'identifiant d'un client (??)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    "SELECT idf_client FROM accompagnateur WHERE idf_accompagnateur= " + idf_client + ";"
    "DELETE FROM client WHERE idf_client= " + idf_client + " ;"
    Dans tous les cas ce qui me semble assez problématique ici c'est que pendant qu'une première requête SELECT travaille sur les tables "client" et "accompagnateur" tu en execute d'autres qui suppriment des lignes de ces 2 mêmes tables. Problème de verrou ?

Discussions similaires

  1. problème avec sqlite
    Par nagca dans le forum Android
    Réponses: 1
    Dernier message: 08/06/2011, 10h08
  2. Réponses: 4
    Dernier message: 25/06/2010, 17h05
  3. Problème avec Sqlite lors de la compilation
    Par Jiyuu dans le forum Déploiement/Installation
    Réponses: 6
    Dernier message: 28/11/2009, 18h32
  4. [C#]problème avec SqLite
    Par ClaudeBg dans le forum Linq
    Réponses: 8
    Dernier message: 18/06/2009, 16h17
  5. Problème avec SQLITE
    Par Jiyuu dans le forum Django
    Réponses: 2
    Dernier message: 12/03/2009, 07h07

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