ddove53
Messages postés623Date d'inscriptionmardi 20 mars 2007StatutMembreDernière intervention15 juin 2010
-
4 mars 2009 à 23:47
ddove53
Messages postés623Date d'inscriptionmardi 20 mars 2007StatutMembreDernière intervention15 juin 2010
-
5 mars 2009 à 16:30
Bonjour,
je veux pouvoir mettre à jour ou supprimer des éléments dans ma base de données et je fait une fonction comme suit :
Public Function UpdateGrp(ByVal dtGroupe As DataTable) As DataTable
Dim daGroupe As New SqlDataAdapter
Dim cmdGroupeUpdate As SqlCommand
Dim cmdGroupeDelete As SqlCommand
Dim cmdGroupInsert As SqlCommand
Dim SQLcn As New SqlConnection()
Me.deconnecter()
Return Me.GroupeInfos// ceci est une autre datatable qui me permet d'afficher tous les elements de ma table
Else
Return Nothing
End If
Catch ex As Exception
MsgBox(ex.ToString)
Me.deconnecter()
Return Nothing
End Try
End Function
Mon probléme est une exception qui me met: System.NullReference exception. J'ai tout regarder mé je ne vois pas ce que ca peut etr.
Pouvez-vous m'aider?
Merci d'avance.
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 5 mars 2009 à 08:45
Salut
Il y a trois trucs qui me titillent (je ne suis pas habitué à .Net ni aux requètes stockées) :
Dans ta première partie :
cmdGroupInsert = New SqlCommand( _
"insert into GroupesProjets(ANNEEGR,NUMGR) values (@anneeGr,@numGr) ", Me.SQLcn)
daGroupe.InsertCommand.Parameters.Add("@anneeGR", SqlDbType.VarChar, 7, "ANNEEGR")
daGroupe.InsertCommand.Parameters.Add("@numGr", SqlDbType.Decimal, 0, "NUMGR")
daGroupe.InsertCommand.Parameters.Add("@CommentGr", SqlDbType.Text, 1000, "CommentGr")
daGroupe.InsertCommand = cmdGroupInsert
-1- Tu n'utilises que 2 variables dans ta requètes alors que tu en définis 3 : @CommentGR est de trop
-2- Ne faudrait-il pas des ' pour encadrer la valeur de @anneeGR qui semble $etre du texte (dépend de la définition de ANNEEGR dans la base)
-3- Où nommes-tu ta requète ? Il faut bien lui donner un nom, sinon comment veux-tu la réutiliser ?
Je ne connais pas trop ces syntaxes, alors mes questions sont peut-être connes, excuses
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
ddove53
Messages postés623Date d'inscriptionmardi 20 mars 2007StatutMembreDernière intervention15 juin 2010 5 mars 2009 à 11:31
Bonjour, quand je copiai la syntaxe j'ai oublié la 3eme variable, c'est pas le probléme.
Et pour ce qui est des quotes(') pour les textes c'est pas le probléme non plus, c'est comme ça que s'écrit la syntaxe.
Par contre je ne compren pa ce que tu veux dire par nommer ta requete. Peut etre que je ne compren pas mais ces requetes sont executés dan un datagridview.
Je fais une fonction comme suit dans un composant (GestionGroupe) qui fait reference au composant ou se trouve la fonction UpdateGrp.
Public Function ModifierGroupe(ByVal dtNewDT As DataTable) As DataSet
// objGroupe est un new AccesDonnees (AccesDonnees est le composant ou se trouve ma fonction UpdateGrp)
objGroupe.UpdateGrp(dtNewDT)
Return Nothing
End Function
Après j'appelle la fonction ModifierGroupe dans un form qui se trouve dans un autre composant (CompClient) faisant reference au composant ou se trouve ma fonction ModifierGroupe.
Et dans ce composant, se trouve mon datagridview ou je peut inserer, modifier ou supprimer des elements.
Toujours dans se form se trouve un bouton d'enregistrement que j'ai fait comme suit:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Try
//objGestion est un new GestionGroupe
objGestionGroupe.ModifierGroupe(DataGridView1.DataSource)
Catch ex As Exception
MsgBox(ex.ToString)
End Try
End Sub
C'est long mais j'espere que j'ai étais clair. Merci de m'aider.
ddove53
Messages postés623Date d'inscriptionmardi 20 mars 2007StatutMembreDernière intervention15 juin 2010 5 mars 2009 à 16:30
J'ai trouvé le probléme, dans un de maes fonctions utilisées, j'avais renommé les colonnes de ma base (par exple NUMGR as Annee) et j'en ai pas tenue compte par la suite.
Merci.