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 :

"Update" d'une table [Débutant]


Sujet :

ASP.NET

  1. #1
    Nouveau membre du Club
    Inscrit en
    Décembre 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 43
    Points : 35
    Points
    35
    Par défaut "Update" d'une table
    Bonjour mesdames, messieurs,

    comme indiqué dans le titre je suis débutant en language c# et en développement asp.net

    J'ai un problème de mise à jour de champs, je vous montre mon code.

    aspx:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <asp:SqlDataSource ID="SqlDataTeamStat" runat="server" 
                            ConnectionString="<%$ ConnectionStrings:ConnectionString1 %>" 
                            SelectCommand="SELECT * FROM [Team]"></asp:SqlDataSource>
    c#
    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
    protected void SubmitButton_Click(object sender, EventArgs e)
        {
            int HomeWin = 0, HomeLost = 0, HomeOTL = 0, AwayWin = 0, AwayLost = 0, AwayOTL = 0;
            string HCoach = GridView1.SelectedRow.Cells[2].Text; 
            string ACoach = GridView1.SelectedRow.Cells[6].Text;
     
            if (int.Parse(HomeScore.Text) < int.Parse(AwayScore.Text))
            {
                if (OTBox.Checked == true)
                {
                    HomeOTL = 1;AwayWin = 1;
                }
                else
                {
                    HomeLost = 1;AwayWin = 1;
                }
            }
            else
            {
                if (OTBox.Checked == true)
                {
                    HomeWin = 1;AwayOTL = 1;
                }
                else
                {
                    HomeWin = 1;AwayLost = 1;
                }
            }
            SqlDataTeamStat.UpdateCommand = "UPDATE Team SET GP=GP+1, Win=Win+"+HomeWin+", Lost=Lost+"+HomeLost+", OTL=OTL+"+HomeOTL+", GF=GF+"+int.Parse(HomeScore.Text)+", GA=GA+"+int.Parse(AwayScore.Text)+" WHERE Coach=" + HCoach;
            SqlDataTeamStat.UpdateCommand = "UPDATE Team SET GP=GP+1, Win=Win+" + AwayWin + ", Lost=Lost+" + AwayLost + ", OTL=OTL+" + AwayOTL + ", GF=GF+" + int.Parse(AwayScore.Text) + ", GA=GA+" + int.Parse(HomeScore.Text) + " WHERE Coach=" + ACoach;
            SqlDataTeamStat.Update();
        }
    Dès que je presse le bouton submit, j'ai un message d'erreur
    invalid column name 'le nom du coach'
    J'ai tenté plusieurs choses sur les exemples sur internet, mais toujours la même erreur.

    Pourriez-vous m'éclairer s'il vous plaît ?

  2. #2
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2011
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2011
    Messages : 60
    Points : 100
    Points
    100
    Par défaut
    Avant d'aller plus loin passe tes requêtes en paramétrées

    voici un petit article sur le sujet :
    webman.developpez.com/articles/aspnet/sqlparameter/csharp/
    tu y verras beaucoup plus clair sans oublier la securité ...

  3. #3
    Nouveau membre du Club
    Inscrit en
    Décembre 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 43
    Points : 35
    Points
    35
    Par défaut
    J'ai essayé en ajouter des paramètres, j'ai essayé de tout mettre en asp... J'ai toujours le message d'erreur invalid column name.

    Alors j'ai décidé de changer de colonne "Where", maintenant j'ai cette erreur

    Incorrect syntax near '='.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Salut,

    Si t'étais passé par les requêtes paramétrées t'aurais pas ce problème.
    Je pense que que ton problème provient du fait que le nom du coach est une chaine de caractère donc du coup dans la requête tu dois l'entourer de quotes simples comme suit dans les deux requêtes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Coach= '" + HCoach + "' "
    Remarque que j'ai mis un quote simple à droite et à gauche.

    [EDIT] Au fait, tout champ susceptible de recevoir une chaîne de caractère dans une requête doit avoir sa valeur entourer de simple quote. Là je me rend compte que tes requêtes ne respectent vraiment pas la règle.

  5. #5
    Membre régulier
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2011
    Messages
    60
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2011
    Messages : 60
    Points : 100
    Points
    100
    Par défaut
    Exactly c'est aussi ce que je pense

  6. #6
    Nouveau membre du Club
    Inscrit en
    Décembre 2007
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 43
    Points : 35
    Points
    35
    Par défaut
    C'est bien comme ça qu'on ajoute un paramètre ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SqlDataTeamStat.UpdateParameters.Add("@AwayCoach", System.Data.DbType.String, "ACoach");
    le problème venait du @AwayCoach, il faut l'écrire comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SqlDataTeamStat.UpdateParameters.Add("AwayCoach", System.Data.DbType.String, "ACoach");
    mais l'utiliser comme @AwayCoach

    Merci à tous.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. journalisation des updates, inserts sur une table
    Par philou28 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 28/04/2007, 16h07
  2. Update sql, avec une table à deux colonnes ...
    Par dcz dans le forum Langage SQL
    Réponses: 8
    Dernier message: 04/04/2006, 18h06
  3. [Debutant] faire un update sur tout une table
    Par Karibou dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 27/07/2005, 14h44

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