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 :

un souci durant le rafraichissement d'une page web ASP.net..


Sujet :

ASP.NET

  1. #21
    Membre actif Avatar de gwadakillah
    Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    235
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2005
    Messages : 235
    Points : 239
    Points
    239
    Par défaut
    vas sur ce site la ==> http://rmdiscala.developpez.com/cours/
    et plus particulièrement dans le chapitre 5 pour la POO

  2. #22
    Membre du Club Avatar de mohe27
    Inscrit en
    Février 2007
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 112
    Points : 55
    Points
    55
    Par défaut
    Bonjour cher ami,

    merci pour le lien, je fais des recherches sur intranet également pour me documenter sur la POO et tt le reste, c'est pas évident mais je tacherai de faire de mon mieux.

    je n'hésiterai pas à venir te demander conseil ou éclairecissement si j'ai besoin de toi (ça c'est sûr)

    merci beaucoup

  3. #23
    Membre du Club Avatar de mohe27
    Inscrit en
    Février 2007
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 112
    Points : 55
    Points
    55
    Par défaut
    Bonjour l'ami,

    voilà j'ai suivi tes recommandations et j'ai introduit le code comme j'ai pu comprendre:
    ---------------------------------------------------------------
    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    protected bool CheckBase(string wos, string dateur)
                 {
                
                //Nbre de lignes affectées
                     bool bValid = true;
                
                // Déclaration de l'objet de connexion
                System.Data.SqlClient.SqlConnection oConnection;
                
                // Création de l'objet de connexion
                oConnection = new System.Data.SqlClient.SqlConnection();
                
                // Paramétrage de la chaîne de connexion
                string sConnectionString;
                sConnectionString = "Server=SERVEUR;Initial Catalog=DB;Persist Security    Info=True;User ID=user;Password=password";
                oConnection.ConnectionString = sConnectionString;
                
                // Connexion à la base de données
                oConnection.Open();
                
                // Déclaration de l'objet SqlCommand et de la requête SQL
                System.Data.SqlClient.SqlCommand oCommand;
                string sSQL;
                sSQL = "SELECT wos,dateur from  [test] where wos = " + ListShop.Text + " and dateur = " + TextBoxJour.Text;
                 
                // Création de l'objet SqlCommand
                oCommand = new System.Data.SqlClient.SqlCommand(sSQL, oConnection);
                
                // On appelle la méthode ExecuteNonQuery pour éxécuter notre commande
                 
               if(oCommand.ExecuteNonQuery() > 0 )
                 bValid = false;
                 
                return bValid ;
                 
                }
    
        protected void BtnValidation_Click(object sender, EventArgs e)
        
        {
    
    
            if (CheckBase(ListShop.Text, TextBoxJour.Text))
            {
    
    
                // Déclaration de l'objet de connexion
                System.Data.SqlClient.SqlConnection oConnection;
    
                // Création de l'objet de connexion
                oConnection = new System.Data.SqlClient.SqlConnection();
    
                // Paramétrage de la chaîne de connexion
                string sConnectionString;
                sConnectionString = "Server=SERVEUR;Initial Catalog=DB;Persist Security    Info=True;User ID=user;Password=password";
    
                oConnection.ConnectionString = sConnectionString;
    
                // Connexion à la base de données
                oConnection.Open();
    
                // Déclaration de l'objet SqlCommand et de la requête SQL            System.Data.SqlClient.SqlCommand oCommand;
                string sSQL1;
    
                // Ecriture de la requête SQL
                SqlCommand command = new SqlCommand();
    
                command.Connection = oConnection;
    
                sSQL1 = "INSERT INTO [test](wos, nombre, dateur)";
    
                sSQL1 = sSQL1 + " VALUES('" + ListShop.Text + "','" + TextBoxNombre.Text + "','" + TextBoxJour.Text + "')";
    
                // Création de l'objet SqlCommand
                oCommand = new System.Data.SqlClient.SqlCommand(sSQL1, oConnection);
    
                // On appelle la méthode ExecuteNonQuery pour éxécuter notre commande            oCommand.ExecuteNonQuery();
    
                
                // Fermeture de la connexion
                oConnection.Close();
                lbErrors.Visible = false;
            }
            else
            {
                lbErrors.Visible = true;
            }
            
        }
    j'espère ne pas avoir fait d'erreur parce qu'en utilisant ce code je n'arrive pas ni à écrire ni à vérifier la donnée sur ma BD:

    message d'erreur :

    Exception Details: System.Data.SqlClient.SqlException: Invalid column name 'la valeur de textboxshop.text'

    merci de m'aider là-dessus

  4. #24
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Points : 8 734
    Points
    8 734
    Par défaut
    Regarde ce que vaut sSQL1 au niveau de la ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    oCommand = new System.Data.SqlClient.SqlCommand(sSQL1, oConnection);
    et tu comprendras

  5. #25
    Membre du Club Avatar de mohe27
    Inscrit en
    Février 2007
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 112
    Points : 55
    Points
    55
    Par défaut
    Bonjour l'ami,

    sincèrement je suis un peu perdu là, est-ce que tu peux m'aider un peu plus ??

    c'est pas évident pour moi je suis novice en .Net vous comprenez ..

    merci

  6. #26
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Points : 8 734
    Points
    8 734
    Par défaut
    C'est quoi que tu comprends pas dans mon post?

  7. #27
    Membre du Club Avatar de mohe27
    Inscrit en
    Février 2007
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 112
    Points : 55
    Points
    55
    Par défaut
    je veux dire , pour moi la requête est correcte, je veux dire l'objet Sqlcommand est normalement déclaré.

    avant de mettre en place cette procédure de test avant de faire une saisie, ça fonctionnait normalement, mais là dès que j'ai inité ce test, j'ai le message d'erreur que tu vois là.

    merci

  8. #28
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Points : 8 734
    Points
    8 734
    Par défaut
    Le message d'erreur dit que tu passes un nom de colonne invalide dans ta requete.
    C'est pourquoi je te dis de voir ce que vaut ta requête quand tu l'exécutes

  9. #29
    Membre expert
    Avatar de hed62
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    2 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 029
    Points : 3 134
    Points
    3 134
    Par défaut
    mohe, je penses que tu ne connais pas l'existence du debuggeur.
    Lorsque tu démarre ton application, tu peux dire à Visual studio de la "mettre en pause" à un endroit donné pour vérifier le contenu de tes variables.

    Pour cela, place toi à l'endroit où tu désire arréter l'execution du programme, et fait F9. Lorsque tu va lancer le prog, il va s'arreter à cet endroit.
    Ensuite, fait F10 pour faire du "pas a pas", F11 pour rentrer à l'interieur des methodes, ou F5 pour reprendre l'execution normale.

    Utilise cette méthode pour vérifier ta requete SQL juste avant son execution.

    As tu d'autres soucis, surtout de POO ? parceque si tu ne sais pas ce qu'est une classe, une methode, etc... Je me demande comment tu peux apréhender la gestion des evenements.

  10. #30
    Membre du Club Avatar de mohe27
    Inscrit en
    Février 2007
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 112
    Points : 55
    Points
    55
    Par défaut
    Bonjour Hed62,

    et merci pour tes remarques qui sont bien placées et que j'accèpte volontiers (esprit sportif).

    comme j'ai du le mentionner avant je suis novice en matière de Programmation .Net (c# et Asp) alors j'apprend en même temp que les exos que je fais.

    déjà là j'ai un petit souci avec mon VS 2005, impossible de lancer le "debuger" (je le connais déjà Hed62 ), un message d'erreur survient m'indiquant que le deboguer ("MSVSMON.EXE" does not appear to be running on the remote computer ).
    et pour le nom de la colonne j'ai bien vérifier , les nom sont exacts:

    si j'enlève le bloc qui permet de faire le test sur ma BD , la saisie passe sans problème.

    par contre là c'est pas le cas.

  11. #31
    Membre expert
    Avatar de hed62
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    2 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 029
    Points : 3 134
    Points
    3 134
    Par défaut
    Dans le check base, ce ne serait pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     sSQL = "SELECT wos,dateur from  [test] where wos = " + wos + " and dateur = " + dateur;
    plutot que :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     sSQL = "SELECT wos,dateur from  [test] where wos = " + ListShop.Text + " and dateur = " + TextBoxJour.Text;

  12. #32
    Membre expert
    Avatar de hed62
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    2 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 029
    Points : 3 134
    Points
    3 134
    Par défaut
    Aussi, utilise une constante globale pour la connectionString

  13. #33
    Membre expert
    Avatar de hed62
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    2 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 029
    Points : 3 134
    Points
    3 134
    Par défaut
    Après meilleure relecture :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     if(oCommand.ExecuteNonQuery() > 0 )
    Il ne faut pas utiliser cela : ExecuteNonQuery est utile pour lancer tout requete autre que select (je ne m'étendrai pa sur la cohérence du nom de la fonction...)

    Pour faire un SELECT il faut utiliser ExecuteQuery

  14. #34
    Membre du Club Avatar de mohe27
    Inscrit en
    Février 2007
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 112
    Points : 55
    Points
    55
    Par défaut
    Salut Hed62,

    pour les deux strings SQL , j'utilise les nom des controles "ListShop.Text" et "TextBoxJour.Text" et non pas les variables string (wos, dateur) car c'est une infrormation saisie dont je veux tester la presence sur ma BD ou pas.

    concernant "Executequery()", elle appartient à quel espace de nom ??, là le compilateur ne la reconnait pas.

    je pense qu'il devrait y avoir un moyen plus simple pour faire ce test, qu'en pense-tu ??

  15. #35
    Membre expert
    Avatar de hed62
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    2 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 029
    Points : 3 134
    Points
    3 134
    Par défaut
    Non il n'y a pas plus simple, à part utiliser la même connexion à la base de donnée pour les deux requête, ce qui te fait gagner des lignes de code, augmente la lisibilité et les performances.

    Dans la méthode Check, tu passe deux paramètres, wos et dateur. Or dans ton code tu ne t'en sers pas : il y a donc une incohérence quelque part. Soit tu te sers des paramètres (mieux), soit tu les retires (moins bien car moins lisible, moins découplé, moins évolutif)

    Pour le ExecuteQuery, je te laisse chercher sur la msdn

  16. #36
    Membre expert
    Avatar de hed62
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    2 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 029
    Points : 3 134
    Points
    3 134
    Par défaut
    En fait si, il y a plus simple, plus propre et plus performant:

    Tu défini les colonnes wos et dateur comme étant uniques/clef primaire.

    Ainsi, au insert, c'est la base de données qui rejetera la requete, et tu te recoltera une exception dans ton code C# (normalement, au pire le résultat de ExecuteQuery te précise l'echec)

    Mieux vaut toujours confier les taches au outils les plus à même d'y répondre efficacement !

  17. #37
    Membre du Club Avatar de mohe27
    Inscrit en
    Février 2007
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 112
    Points : 55
    Points
    55
    Par défaut
    Merci Hed62,

    j'avais pensé à la seconde solution justement, mais là il faudra personnaliser une exception pour afficher un message d'erreur et biensûr annuler la requête.

    dis moi, "executereader" permet aussi de faire une recherche et voir si la donnée recherché existe ou pas.

    est-ce qu'il fait l'affaire ??

  18. #38
    Membre expert
    Avatar de hed62
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    2 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 029
    Points : 3 134
    Points
    3 134
    Par défaut
    Tout à fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
            // query = SELECT ....
            SqlCommand command = new SqlCommand(queryString, connection);
            SqlDataReader reader = command.ExecuteReader();
            if(reader.Read())
            {
                  // deja en base
             }
            else
            {
                 // Pas en base, on peut faire INSERT
             }

  19. #39
    Membre du Club Avatar de mohe27
    Inscrit en
    Février 2007
    Messages
    112
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 112
    Points : 55
    Points
    55
    Par défaut
    Salut Hed62,

    c'est ce que je vais faire en effet, je l'avais déjà utilisé auparavant je l'ai complètement oublié celui là

    je te reviendrai apès

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Réponses: 4
    Dernier message: 12/05/2009, 10h12
  2. Comment faire des frame dans une page en ASP.Net
    Par Jean-Claude Dusse dans le forum ASP.NET
    Réponses: 6
    Dernier message: 04/02/2009, 20h45
  3. probléme d'execution d'une page web asp.net
    Par grungy-soul dans le forum ASP.NET
    Réponses: 12
    Dernier message: 15/10/2008, 11h54
  4. Réponses: 5
    Dernier message: 08/04/2008, 23h26
  5. Réponses: 3
    Dernier message: 18/09/2007, 17h21

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