Erreur Suppression Données avec SQLite dans C#

L'auteur de ce sujet a trouvé une solution à son problème.
Auteur du sujet

Salut à tous, je suis nouveau dans le forum, et j'aimerai bien que quelqu'un puisse m'aider… au fait, je développe en C#, et j'ai un problème avec la base de données créée en SQLite en ce qui concerne la suppression des données dans une table. Lorsque j'essaye de supprimer une donnée, j'ai ce message d'erreur :

1
2
3
4
5
6
7
8
9
System.Data.SQLite.SQLiteException (0x80004005) : database is locked
database is locked
à System.Data.SQLite.SQLite3.Step(SQLiteStatement stmt)
à System.Data.SQLite.SQLiteDataReader.NextResult()
à System.Data.SQLite.SQLiteDataReader..ctor(SQLiteCommand cmd, CommandBehavior behave)
à System.Data.SQLite.SQLiteCommand.ExecuteReader(CommandBehavior behavior)
à System.Data.SQLite.SQLiteCommand.ExecuteNonQuery(CommandBehavior behavior)
à System.Data.SQLite.SQLiteCommand.ExecuteNonQuery()
à ProjetAmba.Form6.SupprimerEleve() dans d:\Mes documents privés\Documents Mont-Amba\ProjetAmba\ProjetAmba\Form6.cs:ligne 108

De fois la suppression marche à merveille après quelques temps de repos, mais cette erreur apparait si souvent. Aidez-moi svp car je suis vraiment bloqué et je ne sais comment m'en sortir… le code source pour la suppression est :

 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
public void SupprimerEleve()
        {
            try
            {
                SQLiteConnection connexion = new SQLiteConnection("Data Source = GSMA.db; Version = 3;");
                connexion.Open();
                SQLiteCommand recherche = new SQLiteCommand("SELECT MatriculeEleve FROM Eleve", connexion);
                SQLiteDataReader dr = recherche.ExecuteReader();
                string matricule = "";
                while (dr.Read())
                {
                    if (dr[0].ToString().Equals(txtMatricule.Text))
                    {
                        matricule = dr[0].ToString();
                        break;
                    }
                }
                if ((matricule.Equals(txtMatricule.Text)) && (!txtMatricule.Text.Equals(string.Empty)))
                {
                    SQLiteCommand commande = new SQLiteCommand("DELETE FROM Eleve WHERE MatriculeEleve = '" + txtMatricule.Text + "'", connexion);
                    commande.ExecuteNonQuery();
                    MessageBox.Show("Elève supprimé !", "Suppression Elève", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                else
                {
                    if (txtMatricule.Text.Equals(string.Empty))
                    {
                        MessageBox.Show("Entrez un numéro matricule svp !", "Erreur Matricule", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                    else
                    {
                        MessageBox.Show("Ce numéro matricule n'existe pas !", "Matricule inexistant", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                }
                connexion.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show(string.Empty + ex, "Erreur Suppression", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
        }

Merci d'avance pour votre aide…

Édité par Fumble

+0 -0

Bonjour,

J'ai édité ton message afin d'utiliser un formatage correct pour le code.
Je t'invite à consulter ce petit article pour savoir comment insérer des blocs de code en markdown sur ZdS.

Quelques éléments concernant ton problème de base de données.

Édité par Fumble

Fumble’s Dev Center v1.0 - Secrétaire de Zeste de Savoir - Sharleen <3 - Áfram Ísland ! - Commander Shepard true fan

+0 -0
Vous devez être connecté pour pouvoir poster un message.
Connexion

Pas encore inscrit ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte