VB.Net Problème avec une requête SQL

cs_MagDix Messages postés 531 Date d'inscription lundi 5 juin 2006 Statut Membre Dernière intervention 6 octobre 2012 - 7 sept. 2008 à 15:27
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 - 8 sept. 2008 à 00:28
Bonjour

J'ai un problème avec ma requête SQL

Ca me dit comme erreur:
System.InvalidCastException was unhandled
"La conversion du type 'DBNull' en type 'String' n'est pas valide."
 
J'essais de modifier une valeur se trouvant dans la Colonne Recette
Mai sle Bug ne vient peut-être d'ailleurs.
Mes colonnes sont tous en Texte (Dans ma BD) sauf la colonne Cle qui est NuméroAuto

Merci de votre aide

P.S. Le site est vraiment bien.. félicitation

Voici ma RequêteRequeteSQL "UPDATE Recettes SET Recette '" & Replace(DtgRecette.CurrentRow.Cells(0).Value,
"'",
"''") &
"',Type = '" & DtgRecette.CurrentRow.Cells(1).Value &
"',Volume = '" & DtgRecette.CurrentRow.Cells(2).Value & _

"',Numero = '" & DtgRecette.CurrentRow.Cells(3).Value &
"',Page = '" & DtgRecette.CurrentRow.Cells(4).Value &
"',Autre = '" & DtgRecette.CurrentRow.Cells(5).Value & _

"',Cote = '" & DtgRecette.CurrentRow.Cells(6).Value &
"',Nota = '" & Replace(DtgRecette.CurrentRow.Cells(7).Value,
"'",
"''") &
"',Repas_Rapide = '" & DtgRecette.CurrentRow.Cells(8).Value & _

"' WHERE Cle = " & DtgRecette.CurrentRow.Cells(9).Value

1 réponse

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
8 sept. 2008 à 00:28
Salut

C'est des erreurs dotnet et tu postes dans vb6 ??

Point 1
Utilise des requetes parametres pour eviter les injections SQL
Plus de sécurité et evites tes replace

exemple
"UPDATE Recettes SET Recette @recette,Type@Type,Volume = @volulme,Numero @numero,Page @page,Autre = @autre,Cote =@cote,Nota = @nota',Repas_Rapide = @Repas_Rapide WHERE Cle = @cle"

c'est plus clair des requetes comme çà
apres il faut remplir les parametres de la commande cherches sur MSDN pour ca

Point 2
Allège l'ecriture

Dim row as datarow =  DtgRecette.CurrentRow

Point 3

Dans ton datagrid tu as une cellule à nulle
c'est tout et null to string --> boom.
la converion est faite car tu esssaye de concaténer dans une chaine de caractere des valeurs
de tous types il faut les convertir en string pour avoir une chaine à la fin

Bon coding
0
Rejoignez-nous