[ASP.net][C#] Erreur sur DataAdapter.Fill [Résolu]

Signaler
Messages postés
52
Date d'inscription
dimanche 7 septembre 2003
Statut
Membre
Dernière intervention
11 avril 2007
-
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
-
Bonjour a tous!

Voila mon probleme, j'ai du code généré par WebMatrix (je sais, je
devrais passer a VS.net) que j'ai modifié pour l'adapté à MySQL (Odbc)
(ce qui est en bleu était remplacé par ce qui est en commentaire vert)!



void BindGrid() {





OdbcConnection myConnection = new OdbcConnection(ConnectionString);


OdbcCommand myCommand = new OdbcCommand(SelectCommand,


myConnection);





OdbcDataAdapter myAdapter = new OdbcDataAdapter(myCommand);


myAdapter.SelectCommand = myCommand;




DataSet ds = new DataSet();


//myCommand.Fill(ds);


myAdapter.Fill(ds, "tb_login");




DataGrid1.DataSource = ds.Tables;


DataGrid1.DataBind();


}





Mon probleme est que mon code une fois compilé me donne cette erreur:

ERROR [HYT00] [MySQL][ODBC 3.51 Driver]Accès refusé pour l'utilisateur: ' Seb@localhost' (mot de passe: OUI)




Description: An
unhandled exception occurred during the execution of the current web
request. Please review the stack trace for more information about the
error and where it originated in the code.



Exception Details: System.Data.Odbc.OdbcException:
ERROR [HYT00] [MySQL][ODBC 3.51 Driver]Accès refusé pour l'utilisateur:
' Seb@localhost' (mot de passe: OUI)



sur la ligne myAdapter.Fill(ds, "tb_login");







Effectivement j'ai un Log : Seb et un Pass : Solt mais pourquoiil me
refuse l'acces avec une erreur sur cette ligne précisément!??



Perso je trouve ca louche et je me casse le cul a chercher d'où ca peut
venir, mais à l'horizon un grand désert aride et vide de solution....
donc si qqn a déjà eu ce genre de pb ou meme si il n'a pas eu mais
qu'il sais comment le resoudre merci d'avance ;)


Mets
spiderman comme sonnerie de téléphone à ta copine si tu trouve pas
d'autre moyen pour la faire grimper au plafond (Dixit SFR)

7 réponses

Messages postés
52
Date d'inscription
dimanche 7 septembre 2003
Statut
Membre
Dernière intervention
11 avril 2007

OUOOOOOO PUTAIGN je suis le roi des cons!

C'est deja bien de le reconnaitre me direz vous!

Vous ne pouviez pas m'aidez pour ce probleme.... ca venait tout simplement de la string de connection:

string ConnectionString = "DRIVER={MySQL ODBC 3.51 Driver};" +


"SERVER=localhost;" +


"DATABASE=inper;" +


"UID= Seb;" +


"PASSWORD= Solt;" +


"OPTION=3";




Vous voyez pas? mais si voyons regardez bien, sur la ligne de
l'UID, j'ai mis un ridicule petit espace de @#%£¤# entre le '=' et mon
"Seb" !

Pareil pour le PASSWORD! Donc pour les troufion qui comme moi se
plaigne pour rien regardez bien les espaces, pcq ca peut mettre tout en
l'air!



Grrrrr 3h que je me prend la tete pour ce fichu espace! Ah j'ai les boules, j'vous l'dis!

Merci pour votre aide, rassurez vous vous n'en avez pas fini avec moi

Bonne journée


Mets spiderman comme sonnerie de téléphone à ta
copine si tu trouve pas d'autre moyen pour la faire grimper au plafond
(Dixit SFR)
Messages postés
52
Date d'inscription
dimanche 7 septembre 2003
Statut
Membre
Dernière intervention
11 avril 2007

PS: j'ai essayé ca aussi juste avant et ca ne fonctionne pas, j'ai la meme erreur :




void BindGrid() {


    OdbcConnection myConnection = new OdbcConnection(ConnectionString);
    OdbcCommand myCommand = new OdbcCommand(SelectCommand, myConnection);



    OdbcDataAdapter myAdapter = new OdbcDataAdapter(myCommand);

    myAdapter.SelectCommand = myCommand;



    DataSet ds = new DataSet();

    //myCommand.Fill(ds);

    myAdapter.Fill(ds);  <== les diff&#233;rences sont ici


    DataGrid1.DataSource = ds; <== et l&#224;
    DataGrid1.DataBind();
}




Mets spiderman comme sonnerie de téléphone à ta
copine si tu trouve pas d'autre moyen pour la faire grimper au plafond
(Dixit SFR)
Messages postés
151
Date d'inscription
mercredi 18 septembre 2002
Statut
Membre
Dernière intervention
22 février 2007

salut
moi je connais pas trop adapter mais plutot datareader si tu veux
bon c du vb tu le change en c# koi et ca donne


Dim rsConnection
As OdbcDataReader


m_conn =
New OdbcConnection()



On
Error

Resume

Next


m_conn.ConnectionString = sConnection


m_conn.Open()



Dim xCommand
As OdbcCommand = m_conn.CreateCommand


sMsg = UCase(sMsg)


xCommand.CommandText = sMsg


rsConnection = xCommand.ExecuteReader



If rsConnection.Read
Then


txtTest.Text= rsConnection.GetString(0)



Else


txtTest.Text = ""



End
If


rsConnection.Close()

xCommand.Close()
m_conn.close()

je c pas si cela peut t'aider a toi de voir
Messages postés
151
Date d'inscription
mercredi 18 septembre 2002
Statut
Membre
Dernière intervention
22 février 2007

ps : tu as regardé les autorisations d'accès dans l'administration des utilisateurs qu'ils puissent se connecté en localhost?
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
J'ai faillit prendre un crise cardiaque en voyant le on error resume next plus serieusement, VB6 c'est finit dis lui au revoir, maintenant on a une gestion d'erreur en vb.net le bloc Try Catch ... utilises le, il est fait pour ca

Sinon pour le problème original je comprend pas trop ce que tu fais. tu remplaces myCommand par MyAdapter la je pense qu'il y a deja un problème. puis je comprend pas la source d'origine ... t'es sur qu'il fonctionne ?

Regarde le code de Fabrice pour une connection MySQL : http://www.aspfr.com/code.aspx?ID=8930


<HR style="WIDTH: 100%; HEIGHT: 2px">
Cyril
Messages postés
52
Date d'inscription
dimanche 7 septembre 2003
Statut
Membre
Dernière intervention
11 avril 2007

Bah en fait je ne suis pas sur que ca fonctionne a l'origine...

En fait sous Web Matrix, il est proposé des .aspx, déjà un peu commencé
(bah on est faineant où on ne l'est pas) et le code complet est bcp
plus long pcq j'ai un datagrid avec les donneés et pour chaque
enregistrement une colonne "modifier" et une "supprimer", je m'étais
dis : "OUAOU, c'est presque tout fait, j'ai juste a pomper" seulement
tout etait prévu avec des SqlConnection,
SqlCommand, Sql... etc donc pour que ca fonctionne avec MySQL, j'ai du
tout mettre en OdbcConnection, OdbcCommand, ....etc...!

Puis il y avait cette fameuse fonction BindGrid() :



void BindGrid() {

OdbcConnection myConnection = new OdbcConnection(ConnectionString);
OdbcCommand myCommand = new OdbcCommand(SelectCommand, myConnection);

myCommand.Fill(ds);
DataGrid1.DataSource = ds;
DataGrid1.DataBind();
}




Que je comprendre pas tres bien qu'est ce qu'elle fait, enfin en
particulier le myCommand.Fill pcq il n'y a pas de Fill dans OdbcCommand
ou meme SqlCommand, pffff donc leur code est bizar déjà à la création!

Enfin merci quand meme pour vos message je vais chercher un peu et pis peu etre meme tout faire moi meme, lol!



D'autre conseil sont tout de meme les bienvenus!

Merci


Mets spiderman comme sonnerie de téléphone à ta
copine si tu trouve pas d'autre moyen pour la faire grimper au plafond
(Dixit SFR)
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
28
lol pour un espace ...

En tout cas c'est une bonne info je n'aurais pas cru que ca aurait
planté avec un espace, mais ca ne m'aurait pas venu à l'idée de mettre
un espace non plus c'est toujours bon à savoir.


Pour le Fill du myCommand, c'est normal, Fill veut dire remplir, ca
sert donc à remplir le dataset via la commande, moi aussi quand j'ai
vu cette syntaxe, passé le dataset en paramètre ca m'a semblé
bizarre, mais c'est un passage de paramètre ByRef et non ByVal donc
pourquoi pas. Si tu veux plus d'explication, je me souviens d'un petit
paragraphe de Richard Clark dans son bouquin Introduction à Asp.net
qui parlait du remplissage d'un dataset, je pourrais aller te le
chercher, où même mieux encore, je te conseil d'acheter ce bouquin, il
est vraiment excellent, et en plus il est "donné" vu sa qualité!


<hr style="width: 100%; height: 2px;">Cyril