IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

[c#] Update d'une base Access


Sujet :

ASP.NET

  1. #21
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 240
    Points : 1 646
    Points
    1 646
    Par défaut
    tu n'as d'éditeur de requête. je n'ai jamais ouvert access. mais regarde tout de même ce que donne le console.writeline de ta requete. ca se trouve tu verras le problème tout de suite?

  2. #22
    Nouveau membre du Club
    Inscrit en
    Juillet 2005
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 107
    Points : 36
    Points
    36
    Par défaut
    a oui mais ça je l'ai fait et ça donne bien ce que je veux...
    J'ai aussi essayé de recopier des code texto que j'ai trouvé sur le net mais ça marche pas donc je sais vraiment pas comment résoudre ec pb...

  3. #23
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 240
    Points : 1 646
    Points
    1 646
    Par défaut
    en gros quelle est la solution que tu as adopté. parce que là je commence à être un peu perdu. qu'est ce qui marche alors?

  4. #24
    Nouveau membre du Club
    Inscrit en
    Juillet 2005
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 107
    Points : 36
    Points
    36
    Par défaut
    Rien ne marche! Tout compile mais à l'exécution ça plante toujours sur la requête. J'ai testé les valeurs de sorti de ma requête et ça à l'air correct.
    Voilà mon code (enfin une demes versions parce que j'ai essayé tellement de chose!! ):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
                DataSet ObjDataSet = new DataSet("person");
     
                string strConnect = @"Provider=Microsoft.Jet.OLEDB.4.0; Ole DB Services=-4; Data Source=D:\DB\droit.mdb";
                OleDbConnection ObjConnect = new OleDbConnection(strConnect);
                ObjConnect.Open();
     
                OleDbDataAdapter ObjDataAdapter = new OleDbDataAdapter("SELECT connecte, nom, prenom, login, password, groupe FROM person ORDER BY nom", ObjConnect);
                ObjDataAdapter.Fill(ObjDataSet,"person");
                ObjDataAdapter.InsertCommand = new OleDbCommand("INSERT INTO person(connecte,nom, prenom, login, password,groupe) Values('@connecte', '@nom', '@prenom', '@login', '@password')", ObjConnect);
                ObjDataAdapter.InsertCommand.Parameters.Add("@connecte", OleDbType.Integer, 14, "connecte");
                ObjDataAdapter.InsertCommand.Parameters.Add("@nom", OleDbType.Char, 15, "nom");
                ObjDataAdapter.InsertCommand.Parameters.Add("@prenom", OleDbType.Char, 15, "prenom");
                ObjDataAdapter.InsertCommand.Parameters.Add("@login", OleDbType.Char, 15, "login");
                ObjDataAdapter.InsertCommand.Parameters.Add("@password", OleDbType.Char, 15, "password");
                ObjDataAdapter.InsertCommand.Parameters.Add("@groupe", OleDbType.Char, 15, "groupe");
     
                DataRow ObjDataRow;
     
                ObjDataRow = ObjDataSet.Tables["person"].NewRow();
     
                ObjDataRow["connecte"] = "1";
                ObjDataRow["nom"] = tb_nom.Text;
                ObjDataRow["prenom"] = tb_prenom.Text;
                ObjDataRow["login"] = tb_login.Text;
                ObjDataRow["password"] = tb_pass.Text;
                ObjDataRow["groupe"] = ddl_groupe.SelectedValue;
     
                ObjDataSet.Tables["person"].Rows.Add(ObjDataRow);
     
                ObjDataAdapter.Update(ObjDataSet,"person");
    Et le truc c'est que si je met en commentaire toutes les lignes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    ObjDataAdapter.InsertCommand.Parameters.Add("@connecte", OleDbType.Integer, 14, "connecte");
                ObjDataAdapter.InsertCommand.Parameters.Add("@nom", OleDbType.Char, 15, "nom");
                ObjDataAdapter.InsertCommand.Parameters.Add("@prenom", OleDbType.Char, 15, "prenom");
                ObjDataAdapter.InsertCommand.Parameters.Add("@login", OleDbType.Char, 15, "login");
                ObjDataAdapter.InsertCommand.Parameters.Add("@password", OleDbType.Char, 15, "password");
                ObjDataAdapter.InsertCommand.Parameters.Add("@groupe", OleDbType.Char, 15, "groupe");
    J'ai exactement la même erreur à l'exécution!!

    Voilà ou j'en suis...

  5. #25
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 240
    Points : 1 646
    Points
    1 646
    Par défaut
    mais je t'avais dit que le truc que tu utilises n'est bon que pour les procédures stockées. il fallait utiliser ma solution et trouver l'erreur de parametrage. comme je te l'avais demandé pourquoi tu passes par un dataset pour faire ta modif j'ai un peu du mal à comprendre.

  6. #26
    Nouveau membre du Club
    Inscrit en
    Juillet 2005
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 107
    Points : 36
    Points
    36
    Par défaut
    arf, je la refait. J'ai fait tellement de test que je sais plus trop ou j'en suis...
    voilà, je refais passer mon code... dsl...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    string strCommand = "INSERT INTO person(connecte, nom, prenom, login, password) Values( ?, ?, ?, ?)";
    OleDbCommand ObjCommand = new OleDbCommand (strCommand, ObjConnect);
    ObjCommand.CommandType = CommandType.Text;
    ObjCommand.Parameters.Add("@connecte", OleDbType.Integer, 1);
    ObjCommand.Parameters.Add("@nom", OleDbType.Char, 50, tb_nom.Text);
    ObjCommand.Parameters.Add("@prenom", OleDbType.Char, 50, tb_prenom.Text);
    ObjCommand.Parameters.Add("@login", OleDbType.Char, 50, tb_login.Text);
    ObjCommand.Parameters.Add("@password", OleDbType.Char, 50, tb_pass.Text);
    ObjCommand.Parameters.Add("@groupe", OleDbType.Char, 50, ddl_groupe.SelectedValue);
     
    ObjCommand.ExecuteNonQuery();
    Et je garde toujours cette erreur:
    System.Data.OleDb.OleDbException: Erreur de syntaxe dans l'instruction INSERT INTO.
    sur la ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ObjCommand.ExecuteNonQuery();
    voilà ce que je peux filer en plus si jamais ça peut aider... perso ça m'aide pas vraiment...
    [OleDbException (0x80040e14): Erreur de syntaxe dans l'instruction INSERT INTO.]
    System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(Int32 hr) +41
    System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult) +174
    System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult) +92
    System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult) +65
    System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method) +112
    System.Data.OleDb.OleDbCommand.ExecuteNonQuery() +66
    Connection.tri_admin.fct_valid(Object sender, EventArgs e) in C:\Inetpub\wwwroot\t_administration.aspx.cs:343
    System.Web.UI.WebControls.Button.OnClick(EventArgs e) +108
    System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +57
    System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +18
    System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
    System.Web.UI.Page.ProcessRequestMain() +1292
    merci

  7. #27
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 240
    Points : 1 646
    Points
    1 646
    Par défaut
    et ca donne quoi la requête quand tu la fais afficher?
    euh mais c'est quoi @connecte. parce que tu n'as que 4 '?' au lieu de 5 '?' donc il y a un problème à ce niveau.

  8. #28
    Nouveau membre du Club
    Inscrit en
    Juillet 2005
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 107
    Points : 36
    Points
    36
    Par défaut
    Oui pour le ? tu as raison il en manquait 1 mais bon, il n'a pas gueulé...
    Sinon si je fait afficher ma requête je vois bien les champs rentré par l'utilisateur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Response.Write("INSERT INTO person(nom, prenom) Values('"+tb_nom.Text+""+tb_prenom.Text+""+ddl_groupe.SelectedValue+"')");
    J'ai également bien vérifié que je faisait le même cast que les champs attendu par la table mais j'ai encore et toujours la même erreur...

    c'est quoi le pb....

  9. #29
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Déjà :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string strCommand = "INSERT INTO person(connecte, nom, prenom, login, password) Values(@connecte,@nom,@prenom,@login,@password)";
    Et pas besoin d'ajouter ce paramètre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ObjCommand.Parameters.Add("@groupe", OleDbType.Char, 50, ddl_groupe.SelectedValue);
    Et fais ca avant d'ajouter tes parametres :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ObjCommand.Parameters.Clear();

  10. #30
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 240
    Points : 1 646
    Points
    1 646
    Par défaut
    dans ta requete insert tu veux inserer 2 champs mais toi tu lui en fournis 3 donc ca ne peut pas marcher. et puis donne nous le bonne requête que tu mets dans ton code. là ca n'est pas la même que celle que tu as fourni dans les autres posts. et affiche le resultat du response.write et non le response.write ca nous aidera aussi.

  11. #31
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Mais je crois qu'elle n'arrive pas à compter jusqu'à 5

  12. #32
    Nouveau membre du Club
    Inscrit en
    Juillet 2005
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 107
    Points : 36
    Points
    36
    Par défaut
    jab a dit:
    Il me semble que la synaxe @xxx ne convient pas aux paramètres en OleDb. =Utilise des ? à la place.
    et ça ne marche pas non plus avec des @.

    La ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ObjCommand.Parameters.Clear();
    ne change rien du tout.
    Et pour le dernier paramètre j'étais en train de modifier ça quand j'ai posté le code.

    Voilà mais ça marche toujours pas

  13. #33
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 240
    Points : 1 646
    Points
    1 646
    Par défaut
    dans ta requete insert tu veux inserer 2 champs mais toi tu lui en fournis 3 donc ca ne peut pas marcher. et puis donne nous le bonne requête que tu mets dans ton code. là ca n'est pas la même que celle que tu as fourni dans les autres posts. et affiche le resultat du response.write et non le response.write ca nous aidera aussi.

  14. #34
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    De plus, tu ne met pas de virgules entre tes valeurs de champs

    Autre chose, n'oublie pas de doubler les ' quand tu en as dans les chaînes de caractères.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    TaChaine.Replace("'","''");

  15. #35
    Nouveau membre du Club
    Inscrit en
    Juillet 2005
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 107
    Points : 36
    Points
    36
    Par défaut
    voilà la même requête:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Response.Write("INSERT INTO person(connecte, nom, prenom,login, password, groupe) Values('1','"+tb_nom.Text+"','"+tb_prenom.Text+"','"+tb_login.Text+"','"+tb_pass.Text+"','"+ddl_groupe.SelectedValue+"')");
    et voilà ce qui saffiche:
    INSERT INTO person(connecte, nom, prenom,login, password, groupe) Values('1','TITI','TOTO','LOG','PASS','ACHAT')
    Je retrouve donc bien mes variables.

    De plus, tu ne met pas de virgules entre tes valeurs de champs
    Des points virgules entre les champs???

  16. #36
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Non mais sur la requête de la page précédente, aucune virgule !! Ca m'a étonné.

    connecte ne serait pas un entier par hasard ?

  17. #37
    Nouveau membre du Club
    Inscrit en
    Juillet 2005
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 107
    Points : 36
    Points
    36
    Par défaut
    A oui ok pour les virgule oui je les avais oublié mais je dois avoué que ça fait tellement longtemps que je suis sur ce pb pb que je commence à avoir du mal là...
    Et oui connecte est un entier pkoi??

  18. #38
    BiM
    BiM est déconnecté
    Expert éminent sénior
    Avatar de BiM
    Femme Profil pro
    Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT
    Inscrit en
    Janvier 2005
    Messages
    7 796
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultante/Formatrice BIRT & Ingénieur Java/J2EE/GWT

    Informations forums :
    Inscription : Janvier 2005
    Messages : 7 796
    Points : 10 765
    Points
    10 765
    Par défaut
    Pas de ' autour des entiers !!!!

  19. #39
    Nouveau membre du Club
    Inscrit en
    Juillet 2005
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 107
    Points : 36
    Points
    36
    Par défaut
    D'ac je les ais enlevé mais ça ne marche toujours pas...

  20. #40
    Membre expérimenté
    Profil pro
    Inscrit en
    Août 2005
    Messages
    1 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 1 240
    Points : 1 646
    Points
    1 646
    Par défaut
    et ca ne viendrait pas du fait que tu as mis char(15)? pourquoi pas des varchar?

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 4 PremièrePremière 1234 DernièreDernière

Discussions similaires

  1. [AC-2007] Probleme update sur une base SQLSERV a partir de formulaires Access
    Par Peper89 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 16/07/2010, 14h36
  2. Réponses: 2
    Dernier message: 05/05/2007, 10h05
  3. [MFC] Comment créer et utiliser une base Access
    Par maitre hibou dans le forum MFC
    Réponses: 3
    Dernier message: 10/05/2004, 18h11
  4. bug dans une base Access
    Par bizouard dans le forum Access
    Réponses: 5
    Dernier message: 29/12/2003, 12h41
  5. [ODBC] Intranet en PHP : Lister les tables d'une base Access
    Par fblouet dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 28/10/2003, 14h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo