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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    BiM
    BiM est déconnecté
    Expert confirmé
    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 : 39
    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
    Par défaut
    elendila, dis nous au moins tes erreurs et a quelle ligne

  2. #2
    Membre confirmé
    Inscrit en
    Juillet 2005
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 107
    Par défaut
    le truc c'est que si je met:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ObjCommand.Parameters.Add("@password", OleDbType.VarChar, tb_pass.Text.ToUpper());
    (c'est bien ça que tu veux dire??)
    J'ai une erreur du type:
    The best overloaded method match for 'System.Data.OleDb.OleDbParameterCollection.Add(string, System.Data.OleDb.OleDbType, int)' has some invalid arguments
    Pour mon erreur principale c'est toujours la même depuis le début du post, je t'éclair:
    System.Data.OleDb.OleDbException: Erreur de syntaxe dans l'instruction INSERT INTO.
    Sur la ligne:
    ObjCommand.ExecuteNonQuery();
    Voilà voilà

  3. #3
    BiM
    BiM est déconnecté
    Expert confirmé
    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 : 39
    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
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ObjCommand.Parameters.Add("@password", OleDbType.VarChar);
    ObjCommand.Parameters["@password"].Value=tb_pass.Text.ToUpper();

  4. #4
    Membre confirmé
    Inscrit en
    Juillet 2005
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 107
    Par défaut
    arf j'y ai cru mais non... toujours la même erreur...

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 249
    Par défaut
    Voila mes enregistrements à moi :

    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
    32
    33
    34
    35
    		public static string Enregistrement(string id, string titre, string id_categorie, string description, string avec_ss_ss_cat)
    		{
    			string sql;
     
    			if (id=="new")
    			{
    				sql="INSERT INTO ss_categorie (titre,id_categorie,description,avec_ss_ss_cat) VALUES (@titre,@id_categorie,@description,@avec_ss_ss_cat)";
    			}
    			else
    			{
     
    				sql="UPDATE ss_categorie SET titre=@titre,id_categorie=@id_categorie,description=@description,avec_ss_ss_cat=@avec_ss_ss_cat WHERE id=@id";
    			}
    			OleDbConnection OleDbConnect = new OleDbConnection(connStr);
    			OleDbCommand Commande = new OleDbCommand(sql, OleDbConnect);
    			Commande.Parameters.Add(new OleDbParameter("@titre",titre));
    			Commande.Parameters.Add(new OleDbParameter("@id_categorie",id_categorie));
    			Commande.Parameters.Add(new OleDbParameter("@description",description));
    			Commande.Parameters.Add(new OleDbParameter("@avec_ss_ss_cat",avec_ss_ss_cat));
    			Commande.Parameters.Add(new OleDbParameter("@id",id));
    			OleDbConnect.Open();
    			try
    			{
    				Commande.ExecuteNonQuery();
    				return("La base de données a bien été mise à jour.");
    			}
    			catch
    			{
    				return("Les données n'ont pas été enregistrées. Veuillez renouveler ultérieurement l'opération.");
    			}
    			finally
    			{
    				OleDbConnect.Close();
    			}
    		}
    Adapte la avec tes champs. [/code]

  6. #6
    Membre confirmé
    Inscrit en
    Juillet 2005
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 107
    Par défaut
    Bon ben ça non plus ça ne marche pas...
    Voilà mon code:
    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
    32
    33
    34
    35
     
    string strCommand = "INSERT INTO person(connecte, nom, prenom, login, password, groupe) Values(@connecte, @nom, @prenom, @login, @password, @groupe)";
     
    OleDbCommand ObjCommand = new OleDbCommand (strCommand, ObjConnect);
     
    ObjCommand.CommandType = CommandType.Text;
     
    ObjCommand.Parameters.Clear();
     
    ObjCommand.Parameters.Add(new OleDbParameter
    ("@connecte",OleDbType.Integer));
     
    ObjCommand.Parameters["@connecte"].Value = 1;
     
    ObjCommand.Parameters.Add(new OleDbParameter("@nom",OleDbType.VarChar));
     
    ObjCommand.Parameters["@nom"].Value = tb_nom.Text.ToUpper();
     
    ObjCommand.Parameters.Add(new OleDbParameter("@prenom",OleDbType.VarChar));
     
    ObjCommand.Parameters["@prenom"].Value = tb_prenom.Text.ToUpper();
     
    ObjCommand.Parameters.Add(new OleDbParameter("@login",OleDbType.VarChar));
     
    ObjCommand.Parameters["@login"].Value = tb_login.Text.ToUpper();
     
    ObjCommand.Parameters.Add(new OleDbParameter("@password",OleDbType.VarChar));
     
    ObjCommand.Parameters["@password"].Value = tb_pass.Text.ToUpper();
     
    ObjCommand.Parameters.Add(new OleDbParameter("@groupe",OleDbType.VarChar));
     
    ObjCommand.Parameters["@groupe"].Value = ddl_groupe.SelectedValue;
     
    ObjCommand.ExecuteNonQuery();
    Et j'ai toujours la même 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();

  7. #7
    BiM
    BiM est déconnecté
    Expert confirmé
    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 : 39
    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
    Par défaut
    Rajoute .Replace("'","''"); a l'affectation de chaque chaine de caractère.

  8. #8
    Membre confirmé
    Inscrit en
    Juillet 2005
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 107
    Par défaut
    Comment ça un .Replace? Je vois pas ou il faut le mettre

  9. #9
    Membre confirmé
    Inscrit en
    Juillet 2005
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 107
    Par défaut
    J'ai également écrit un code de modification de base avec le code suivant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
                    string strCommand = "UPDATE person SET prenom = @prenom, login = @login, password = @password WHERE nom = @nom";
     
                    OleDbCommand ObjCommand = new OleDbCommand(strConnect, ObjConnect);
     
                    ObjCommand.Parameters.Add(new OleDbParameter("@prenom", tb_prenom.Text.ToUpper()));
     
                    ObjCommand.Parameters.Add(new OleDbParameter("@login", tb_login.Text.ToUpper()));
     
                    ObjCommand.Parameters.Add(new OleDbParameter("@password", tb_pass.Text.ToUpper()));
     
                    ObjCommand.Parameters.Add(new OleDbParameter("@groupe", ddl_groupe.SelectedValue));
     
                    ObjCommand.ExecuteNonQuery();
    et j'ai toujours un erreur sur la requeête mais cette fois un peu différente:
    System.Data.OleDb.OleDbException: Instruction SQL non valide; 'DELETE', 'INSERT', 'PROCEDURE', 'SELECT' ou 'UPDATE' attendus.
    alors que ma requête commence bien par un UPDATE donc je sais pas, j'ai un gros soucis mais je vois vraiment d'ou ça peut venir...

  10. #10
    Membre confirmé
    Inscrit en
    Juillet 2005
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 107
    Par défaut
    arf je retire, je m'étais trompé dans les paramètres, en fait j'ai exactement la même erreur mais avec le UPDATE cette fois:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.Data.OleDb.OleDbException: Erreur de syntaxe dans l'instruction UPDATE
    Voilà, c'est pas mieux...

  11. #11
    BiM
    BiM est déconnecté
    Expert confirmé
    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 : 39
    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
    Par défaut
    Ce ne sont que des erreurs de syntaxe SQL.

    Tu fais :
    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
    try
    {
       string strCommand = "UPDATE person SET prenom = @prenom, login = @login, password = @password WHERE nom = @nom";
       OleDbCommand ObjCommand = new OleDbCommand(strConnect, ObjConnect);
       ObjCommand.Parameters.Add(new OleDbParameter("@prenom", tb_prenom.Text.ToUpper()));
       ObjCommand.Parameters.Add(new OleDbParameter("@login", tb_login.Text.ToUpper()));
       ObjCommand.Parameters.Add(new OleDbParameter("@password", tb_pass.Text.ToUpper()));
       ObjCommand.Parameters.Add(new OleDbParameter("@groupe", ddl_groupe.SelectedValue));
       Response.Write("Requete : "+ObjCommand.CommandText+"<br/>");
       foreach (OleDbParameter param in ObjCommand.Parameters)
         Response.Write(param.Name+" : "+param.Value+"<br/>");
    ObjCommand.ExecuteNonQuery();
    }//try
    catch (Exception ex)
    {
       Response.Write("Erreur : "+ex.Message);
    }//catch

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 249
    Par défaut
    personne essaye mon truc.. car ça marche très bien.

  13. #13
    Membre confirmé
    Inscrit en
    Juillet 2005
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 107
    Par défaut
    SiSi j'ai essayé ton code Lespalom et ça marche pas. Regarde mes post j'ai bien changé pour faire comme toi et j'ai tjs et encore cette maudite erreur....

    Pour ce qui est de ton code d'essaye BiMouXeTTe je l'ai testé, il n'y a que le catch qui ne passe pas:
    The type or namespace name 'ex' could not be found (are you missing a using directive or an assembly reference?)
    C'est un paramètre que je dois initialiser ou??
    Sinon j'ai essayé sans et je rentre bien dans la boucle foreach mais 1 seule fois, pour le nom. Par contre ça me l'affiche bien.
    Voilà l'affichage:
    Requete : UPDATE person SET prenom = '@prenom', login = '@login', password = '@password' WHERE nom = '@nom'
    @prenom : BRUNO
    et ça sort (c'est donc sensé passer dans le catch)

    Voilà voilà, en tout cas merci de votre aide parce que là j'avoue que je n'en voit plus la fin!

  14. #14
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 249
    Par défaut
    t'as bien ajouté System.Data.OleDb ???

  15. #15
    BiM
    BiM est déconnecté
    Expert confirmé
    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 : 39
    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
    Par défaut
    Tu as bien mis Exception devant ex ?

    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
    try
    {
       string strCommand = "UPDATE person SET prenom = @prenom, login = @login, password = @password WHERE nom = @nom";
       OleDbCommand ObjCommand = new OleDbCommand(strConnect, ObjConnect); 
       ObjCommand.Parameters.Add(new OleDbParameter("@prenom", OleDbType.VarChar));
       ObjCommand.Parameters.Add(new OleDbParameter("@login", OleDbType.VarChar));
       ObjCommand.Parameters.Add(new OleDbParameter("@password", OleDbType.VarChar));
       ObjCommand.Parameters.Add(new OleDbParameter("@groupe", OleDbType.VarChar)); 
       Response.Write("Requete : "+ObjCommand.CommandText+"<br/>");
       foreach (OleDbParameter param in ObjCommand.Parameters)
         Response.Write(param.Name+" : "+param.Value+"<br/>"); 
       ObjCommand.Parameters["@prenom"].Value=tb_prenom.Text.ToUpper();
       ObjCommand.Parameters["@login"].Value=tb_login.Text.ToUpper();
       ObjCommand.Parameters["@password"].Value=tb_pass.Text.ToUpper();
       ObjCommand.Parameters["@groupe"].Value=ddl_groupe.SelectedValue;
       ObjCommand.ExecuteNonQuery();
    }//try
    catch (Exception ex)
    {
       Response.Write("Erreur : "+ex.Message);
    }//catch
    Je suppose que tous tes champs sont des VarChar sinon change le type.

  16. #16
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 249
    Par défaut
    Envoi moi ton projet par e-mail. Je vais essayer de regarder.

  17. #17
    Membre confirmé
    Inscrit en
    Juillet 2005
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 107
    Par défaut
    A oui ça marche mieux de suite mais j'ai toujours la même erreur:
    Erreur : Erreur de syntaxe dans l'instruction UPDATE.
    J'ai pas ton @ mail Lespalom et si je t'envoye un mail via le forum je ne peux pas joindre mes pages donc si tu peux me la filer... Merci beaucoup en tout cas!! Par contre je ne pourrais pas te passer la table correspondante vu que je boss dans une boite... :S

    voilà

  18. #18
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 249
    Par défaut
    Salut,

    contact@lespalombes.com.

    Envoi moi une base de données avec la même structure de la table concernée, mais sans les données dedans .

  19. #19
    Membre extrêmement actif
    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
    Par défaut
    j'ai repris le code avec les @ et franchement ca ne fonctionne pas. celui avec les ? lui oui. tu as essayé cette solution finalement?

  20. #20
    Membre confirmé
    Inscrit en
    Juillet 2005
    Messages
    107
    Détails du profil
    Informations forums :
    Inscription : Juillet 2005
    Messages : 107
    Par défaut
    oui j'ai essayé et ça ne marchait pas non plus

+ Répondre à la discussion
Cette discussion est résolue.
Page 3 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, 15h36
  2. Réponses: 2
    Dernier message: 05/05/2007, 11h05
  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, 19h11
  4. bug dans une base Access
    Par bizouard dans le forum Access
    Réponses: 5
    Dernier message: 29/12/2003, 13h41
  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, 15h46

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