[C#/SQL Server] Problème de modification de la base

Problème de modification de la base [C#/SQL Server] - C#/.NET managed - Programmation

Marsh Posté le 30-05-2008 à 00:07:39    

Bonjour,

 

J'ai une petite application qui va taper dans une base de données SQL Server Express mais je butes sur un problème. J'arrive très bien a faire un select et récupérer les résultats par contre dés que je veux modifier (ajouter/modifier/supprimer) ça ne fonctionne pas correctement... Par exemple:

 

Table "test" avec 2 champs: "toto" et "tata" de type varchar.

 

Je rentre via l'explorateur de base de données de Visual Studio 2008, 2 enregistrements:
toto = "bla" et tata = "bli"
toto = "blo" et tata = "blu"

 

Ensuite j'effectue un delete from test where toto="bla", j'affiche en console le nombre de lignes affectées et c'est bien 1 ligne. Je ferme l'appli, je vais dans l'explorateur de base de données et ooh surprise mon enregistrement est toujours là... Ca fait pareil si je fais un INSERT, aucun enregistrement dans l'explorateur.

 

Voici mon code:

 
Code :
  1. // Ouverture de la base
  2. connexionBdd.Open();
  3. SqlTransaction trans = connexionBdd.BeginTransaction();
  4. // Création d'un objet éxécutant la requête
  5. SqlCommand myCommand = new SqlCommand();
  6.            
  7. // Exécution de la requête sur la base
  8. myCommand.Connection = connexionBdd;
  9. myCommand.CommandText = "requete qui va bien";
  10.            
  11. myCommand.Transaction = trans;
  12. myCommand.ExecuteNonQuery();
  13. trans.Commit();
  14. // Fermeture base
  15. connexionBdd.Close();
 

Si après un delete je fais un select il n'y a plus l'enregistrement, par contre si je recompile l'appli la base de données revient a son état d'origine.

 

Vous avez une idée?


Message édité par Cheinz le 30-05-2008 à 00:09:23
Reply

Marsh Posté le 30-05-2008 à 00:07:39   

Reply

Marsh Posté le 30-05-2008 à 23:11:57    

Personne?

Reply

Marsh Posté le 31-05-2008 à 14:52:56    

tu n'aurais pas oublié un commit?

Reply

Marsh Posté le 31-05-2008 à 17:01:28    

Il y est dans le code donc non, je viens d'essayer de passer par des dataset/bindingsource/datatable mais c'est pareil, la base ne se modifie pas.

Reply

Marsh Posté le 31-05-2008 à 19:13:07    

Pffff ça m'énerve, impossible de trouver d'où ça vient et je dois finir la semaine prochaine...
 
La j'ai fais un test, j'ai un une comboBox qui va piocher dans une table de test et j'ai fais un bouton qui insère un enregistrement dans la table chaque fois que je clique dessus eh bien, ma combo contient bien l'enregistrement sauf que dans la base elle même via l'explorateur Visual Studio il n'y a rien... Si je ferme l'appli et que je la réouvre les enregistrements y sont toujours par contre dés que je recompile je les perds...
 
J'y comprends rien :( .

Reply

Marsh Posté le 31-05-2008 à 19:25:29    

si tu testes ton code sans la transaction, ça donne quoi?
 
A première vue il me semble bon, j'ai plutot l'impression que le problème vient du coté DB.
 
Teste ta query d'update directement dans ton éditeur DB. Voir si la aussi, il concerve les anciennes datas.


Message édité par moi23372 le 31-05-2008 à 19:26:43
Reply

Marsh Posté le 31-05-2008 à 19:36:32    

Sans la transaction c'est pareil, c'est pour ça que je l'ai mise, à la base elle n'y était pas donc j'ai testé avec, pensant que ça pouvait venir de là.
 
Par contre si je prends la requête et que je l'exécute dans l'explorateur de base de données (ou dans la console de management de SQL Server) là ça marche et mes données restent...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed