Probleme d'ajout de données

MayOL69bg Messages postés 6 Date d'inscription lundi 20 novembre 2006 Statut Membre Dernière intervention 2 février 2007 - 28 janv. 2007 à 23:40
MayOL69bg Messages postés 6 Date d'inscription lundi 20 novembre 2006 Statut Membre Dernière intervention 2 février 2007 - 31 janv. 2007 à 16:06
Bonjour,

je suis débutant en VB.Net et j'ai un petit problème.

J'ai une base de données SQL server 2005, je souhaite inserer des données par le code. J'ai fais des recherches et j'ai trouvé un bout de code :

Dim command
As SqlCommand = Maconn.CreateCommand()

Dim queryString
As
String = _

"INSERT INTO dbo.Horaire" & _

" (Semaine, ....)" & _

"VALUES (" &
CInt(CmbSemaine.Text) &
", ....);"

Dim temp
As
Integercommand.CommandText = queryString

temp = command.ExecuteNonQuery()

Maconn.BeginTransaction()

Maconn.Close()

 
Quand j'execute ce programme je n'ai aucune erreur mais quand je regarde dans la base, aucun enregistrement n'a été ajouter...Savez-vous pourquoi???

merci d'avance

4 réponses

marzouki_tn2003 Messages postés 29 Date d'inscription mercredi 29 septembre 2004 Statut Membre Dernière intervention 31 janvier 2007 1
29 janv. 2007 à 00:18
Salut
Juste tu as besoin d'un peu d'ordre dans ton code/
 il ya des étapes a suivre pour excécuter une commande SQL :
1- BeginTransaction : Pour indiquer le debut de la transaction,cette methode retourne une référence à la transaction qui est afféctée au objet SqlCommand

Dim sqlTrans As SqlTransaction = Maconn
.BeginTransaction()

2 - Assignez l'objet Transaction à la propriété Transaction du SqlCommand à exécuter

    Dim command As SqlCommand = Maconn
.CreateCommand()
    Maconn
.Transaction = sqlTrans

3 - Excécuter la commande

   command.CommandText = VotrequeryString
   command.ExecuteNonQuery()

4 - Appeler la methode Commit de l'objet SqlTransaction  pour terminer la transaction, ou la méthode Rollback pour l'annuler. 

        sqlTrans.Commit()

Donc maintenant regarde ton code et tu peux decouvrire pourquoi ca marche pas
0
MayOL69bg Messages postés 6 Date d'inscription lundi 20 novembre 2006 Statut Membre Dernière intervention 2 février 2007
30 janv. 2007 à 21:58
Merci pour ta réponse, j'ai suivi à la lettre les étapes comme tu peux le voir dans mon code (ci-dessous), mais aucun données ne s'insèrent...Si tu as une idée de l'erreur...




(je sais que mon code n'est pas propre mais c'est juste pour m'initier)






Dim
queryString

As



String
= _


"INSERT INTO dbo.Horaire"
& _


" (Semaine, ID_Lieu_Dimanche, ID_Lieu_Samedi, ID_Lieu_Vendredi, ID_Lieu_Jeudi, ID_Lieu_Mercredi, ID_Lieu_Mardi, ID_Lieu_Lundi, Date,"
& _


" Lundi_Debut, Lundi_Fin, Mardi_Debut, Mardi_Fin, Mercredi_Debut, Mercredi_Fin, Jeudi_Debut, Jeudi_Fin, Vendredi_Debut, Vendredi_Fin, "
& _


" Samedi_Debut, Samedi_Fin, Dimanche_Debut, Dimanche_Fin)"
& _


"VALUES ("
&

CInt
(CmbSemaine.Text) &

", '"
& LieuDimanche &

"', '"
& LieuSamedi &

"', '"
& LieuVendredi &

"', '"
& LieuJeudi &

"', '"
& LieuMercredi &

"', '"
& LieuMardi &

"', '"
& LieuLundi &

"', '"
& CmbLundi.Text &

"', '"
& LundiDebut &

"', '"
& LundiFin &

"', '"
& MardiDebut &

"', '"
& MardiFin &

"', '"
& MercrediDebut &

"', '"
& MercrediFin &

"', '"
& JeudiDebut &

"', '"
& JeudiFin &

"', '"
& VendrediDebut &

"', '"
& VendrediFin &

"','"
& SamediDebut &

"', '"
& SamediFin &

"', '"
& DimancheDebut &

"', '"
& DimancheFin &

"');"







Dim
Maconn

As
SqlConnection

Maconn =

New
SqlConnection(

"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Emp.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True;"
)



Maconn.Open()




Dim sqlTrans
As SqlTransaction = Maconn.BeginTransaction()

Dim command
As SqlCommand = Maconn.CreateCommand()
command.CommandText = queryString

command.Transaction = sqlTrans

command.ExecuteNonQuery()

sqlTrans.Commit()Maconn.Close()
0
marzouki_tn2003 Messages postés 29 Date d'inscription mercredi 29 septembre 2004 Statut Membre Dernière intervention 31 janvier 2007 1
30 janv. 2007 à 23:15
Salut
 je m'excuse si je te repond en retard
bref dans ton code il faut evoquer tjr l'objet Commant avant sqlTransaction,je pense que c ca est la cause.
en plus c'est necessaire de faire la gestion des erreur dans les transaction SQL pour bien gerer ta base de données.
essaie de créer une fonction booléenne qui excuste cette insertion avec un try ...Catch Exception.


Tu trouve içi un bon exemple : http://msdn2.microsoft.com/fr-fr/library/86773566(VS.80).aspx
0
MayOL69bg Messages postés 6 Date d'inscription lundi 20 novembre 2006 Statut Membre Dernière intervention 2 février 2007
31 janv. 2007 à 16:06
Ne t'excuse pas, c'est super sympa de m'aider

j'ai repris au mot près l'exemple que tu m'a donné. Suaf pour ConnectionString où je ne sais pas vraiment ce qu'il faut mettre. Moi j'ai mis :

"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Emp.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True;"

Sinon il n'y a pas une option dans la base à desactiver ou un truc dans le genre....
0
Rejoignez-nous