Pb de requête sql pour accés à une bdd acces [Résolu]

Signaler
Messages postés
8
Date d'inscription
vendredi 18 mars 2005
Statut
Membre
Dernière intervention
12 juillet 2005
-
Messages postés
8
Date d'inscription
vendredi 18 mars 2005
Statut
Membre
Dernière intervention
12 juillet 2005
-
salut à tous

voila mon problème



je veux éffectuer cette requête

request = "insert into LoginPassword(Login,Password) values (' " & loginDB & "','" & passwordDB & "')"

puis je fais

cmd.CommandText = request

Try

Connexion.Open()

cmd.ExecuteNonQuery()

Catch ex As OleDb.OleDbException

MsgBox("error")

Finally

Connexion.Close()

End Try



et là il me sort le message "error"



mais quand je fais cette requête là

request= "insert into LoginPassword(Login) values (' " & loginDB & "')"

ça marche



je ne comprend rien

j'espère que cela ne vient de ma faute, car si ce n'est pas le cas je
trouverai ridicule de devoir faire un update de ma ligne pour pouvoir
insérer le password correspondant au login



merci d'avance

8 réponses

Messages postés
8
Date d'inscription
vendredi 18 mars 2005
Statut
Membre
Dernière intervention
12 juillet 2005

je te remercie de ton aide mais après un dur weekend j'ai trouvé la problème, en effet toute la configuration de ma connection a ma base de données est bonne ainsi que ma requête sql. le seul truc qui me faisait tout planter était le nom de ma colonne dans ma bdd. en changeant "password" par "pass" comme nom de colonne, tout passe a merveille
ne me demande pas pourquoi, je n'en sais pas plus, le tout c que ça marche
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 195 internautes nous ont dit merci ce mois-ci

Messages postés
101
Date d'inscription
mardi 3 mai 2005
Statut
Membre
Dernière intervention
19 avril 2006

ton password est un string?
Messages postés
8
Date d'inscription
vendredi 18 mars 2005
Statut
Membre
Dernière intervention
12 juillet 2005

oui loginDB et passwordDB sont des strings obtenues après cryptage des données d'origine
Messages postés
101
Date d'inscription
mardi 3 mai 2005
Statut
Membre
Dernière intervention
19 avril 2006

t en vb6 ou vb.net?

connais tu les connections ado?

j'attend ta réponse
Messages postés
8
Date d'inscription
vendredi 18 mars 2005
Statut
Membre
Dernière intervention
12 juillet 2005

je suis en .net



je commence a peine a programmer avec



je connais pas très bien ado mais comme j'ai de grosses tables par la
suite à traiter, je trouve plus simple de le faire avec des requêtes
sql qu'avec le dataset où il faut charger la table et remplir les
champs l'un après l'autre
Messages postés
101
Date d'inscription
mardi 3 mai 2005
Statut
Membre
Dernière intervention
19 avril 2006

pas besoin de dataset essaye ca

dans le module tu met:


Public cnn
As
New ADODB.Connection


Public bdd
As
String =chemin de ta base


Public
Sub Connection_BDD(
ByRef cnn
As ADODB.Connection,
ByVal _bdd
As
String)


cnn =
New ADODB.Connection


cnn.Provider = "Microsoft.Jet.OLEDB.4.0"


cnn.Open("Data Source=" & _bdd)



End
Sub


Public Function Requete_BDD(ByRef _cnn As ADODB.Connection, ByVal requete As String) As ADODB.Recordset 'résultat de la requête stocké dans rst



Dim rst
As
New ADODB.Recordset
' création d'un nouveau jeu d'enregistrements


rst.CursorLocation = ADODB.CursorLocationEnum.adUseClient


rst.Open(requete, _cnn, ADODB.CursorTypeEnum.adOpenDynamic, ADODB.LockTypeEnum.adLockOptimistic)



Return rst



End
Function


dans ta forme tu met:

connection(cnn,bdd)

dim rstInsert as new adodb.recordset


rstInsert.CursorLocation = ADODB.CursorLocationEnum.adUseClient


rstInsert=requete_bdd(cnn,sqlstring) sqlstring est une variable string qui va contenir ta requete

bien sur n'oubli pas de mettre la references adodb

bon week end bip moi lundi pour de plus amples infos
Messages postés
8
Date d'inscription
vendredi 18 mars 2005
Statut
Membre
Dernière intervention
12 juillet 2005

je comprend pas très bien ce que tu veux que je fasse



comment met-on la reference adodb?

voila comment moi j'inialise le tout :



dans mon module j'ai ça

' Déclaration de la connexion

Public Connexion As New OleDb.OleDbConnection



' Création d'un objet commande

Public cmd As New OleDb.OleDbCommand



' Déclaration d'un objet DataReader

Public dtr As OleDb.OleDbDataReader



puis dans ma fonction j'ai ça

chemin = Application.StartupPath & "/LoginPassword.mdb"

base = "provider=microsoft.jet.oledb.4.0;data source=" + chemin



Connexion.ConnectionString = base



' Paramétrage de la commande

cmd.Connection = Connexion







loginDB = GenAlgo(NewUser, form)

passwordDB = GenAlgo(NewPassword1, form)

request = "insert into
LoginPassword(Login,Password) values (' " & loginDB & "','"
& passwordDB & "')"


cmd.CommandText = request

Try


Connexion.Open()


cmd.ExecuteNonQuery()


Catch ex As OleDb.OleDbException


MsgBox("error")


Return True

Finally


Connexion.Close()

End Try





voila là ça plante avec cette requête



mais avec d'autres requêtes ça ne plante pas

ex: "insert into LoginPassword(Login) values(' " & LoginDB & " ')"

"select Login from LoginPassword" en faisant à la
place de "cmd.ExecuteNonQuery()" un "dtr=cmd.ExecuteReader() " avec
dtr.read() après



je pense donc que cela doit venir de ma requête sql qui n'est pas
bonne, je ne vois pas pourquoi ça marcherait avec un insert into ou je
ne spécifie qu'un seul champ de ma table et que quand je veux insérer 2
champs dans cette table ça plante.





merci de vos réponses je reviendrai lundi voir si quelqu'un saura éclairé mon peu de connaissances

bon week end
Messages postés
101
Date d'inscription
mardi 3 mai 2005
Statut
Membre
Dernière intervention
19 avril 2006

pour activer ado
tu fais projet -> references et tu cherche adodb
et tu met ce ke je t donné c sur ca marche je l'utilise