Pb de requête sql pour accés à une bdd acces

Résolu
cs_roumain Messages postés 8 Date d'inscription vendredi 18 mars 2005 Statut Membre Dernière intervention 12 juillet 2005 - 24 juin 2005 à 16:17
cs_roumain Messages postés 8 Date d'inscription vendredi 18 mars 2005 Statut Membre Dernière intervention 12 juillet 2005 - 27 juin 2005 à 19:06
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

cs_roumain Messages postés 8 Date d'inscription vendredi 18 mars 2005 Statut Membre Dernière intervention 12 juillet 2005
27 juin 2005 à 19:06
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
cs_dan80 Messages postés 101 Date d'inscription mardi 3 mai 2005 Statut Membre Dernière intervention 19 avril 2006
24 juin 2005 à 16:21
ton password est un string?
0
cs_roumain Messages postés 8 Date d'inscription vendredi 18 mars 2005 Statut Membre Dernière intervention 12 juillet 2005
24 juin 2005 à 16:31
oui loginDB et passwordDB sont des strings obtenues après cryptage des données d'origine
0
cs_dan80 Messages postés 101 Date d'inscription mardi 3 mai 2005 Statut Membre Dernière intervention 19 avril 2006
24 juin 2005 à 16:38
t en vb6 ou vb.net?

connais tu les connections ado?

j'attend ta réponse
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_roumain Messages postés 8 Date d'inscription vendredi 18 mars 2005 Statut Membre Dernière intervention 12 juillet 2005
24 juin 2005 à 16:47
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
0
cs_dan80 Messages postés 101 Date d'inscription mardi 3 mai 2005 Statut Membre Dernière intervention 19 avril 2006
24 juin 2005 à 16:56
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
0
cs_roumain Messages postés 8 Date d'inscription vendredi 18 mars 2005 Statut Membre Dernière intervention 12 juillet 2005
24 juin 2005 à 17:24
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
0
cs_dan80 Messages postés 101 Date d'inscription mardi 3 mai 2005 Statut Membre Dernière intervention 19 avril 2006
27 juin 2005 à 09:24
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
0
Rejoignez-nous