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 :

AccessDataSource et méthode


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    developpeur C# debutant
    Inscrit en
    Octobre 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : developpeur C# debutant

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2
    Par défaut AccessDataSource et méthode
    Bonjour,
    Je débute dans la programmation et j'ai un probleme. J'ai une page ASPX en C# ou j'ai 2 AccessDataSource. Je souhaite vérifier l'existence de l'enregistrement avant l'insertion ; pour cela un de mes deux AccessDataSource est dans une méthode et est sensé déclenché l'insertion du deuxième , voici 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
    try{    
        AccessDataSource MyAccessDataSource = new AccessDataSource();
        MyAccessDataSource.DataFile = Server.MapPath("~/App_Data/users.mdb");
        Parameter Param = new Parameter("Param");            
        TextBox tb = (TextBox)frmV1.FindControl("txtPrenom");                  
        Param.DefaultValue = tb.Text;
        MyAccessDataSource.SelectParameters.Add(Param);
        MyAccessDataSource.SelectCommand = "SELECT nom FROM users Where prenom=@Param";
        var req = ((DataView)MyAccessDataSource.Select(DataSourceSelectArguments.Empty))[0]["nom"].ToString();       
                 foreach (var x in req)
                 {
                     if (x != null)
                     {
                         lblTest.Text = " existe deja";
                     }
                     else
                     {                     
                         srcPrenom.Insert();
                     }
                 }                  
            }
     
    catch (Exception z) { lblTest.Text = z.Message; }
    ***********************************************
    Comment vérifier que l'enregistrement existe oou pas avant de lancer l'insert , je n'y arrive pas...

    Merci d'avance.

  2. #2
    Membre émérite Avatar de Ramajb
    Homme Profil pro
    ----------------------------
    Inscrit en
    Septembre 2007
    Messages
    476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ----------------------------

    Informations forums :
    Inscription : Septembre 2007
    Messages : 476
    Par défaut
    L'AccessDataSource fournit un événement "Selected" qui se déclenchera après un appel de la méthode "Select()" . Ce gestionnaire d’événement te permet d'avoir le nombre de lignes retourné par l’opération select de ton datasource. Ce gestionnaire d'evenement possède un paramètre EventsArgs de type SqlDataSourceEventArgs. Ce dernier a une propriété AffectedRows qui te retourne le nombre de ligne remontée.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    private void Acessdatasource_Selected(Object source, SqlDataSourceStatusEventArgs e) 
    {
      if (e.AffectedRows != 0)
       lblTest.Text = " existe deja";
    }

  3. #3
    Candidat au Club
    Profil pro
    developpeur C# debutant
    Inscrit en
    Octobre 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : developpeur C# debutant

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2
    Par défaut
    J'ai ajouté l'evenement Selected mais cela ne fonctionne toujours pas. Il me met toujours "existe deja" meme quand le champ est vide.
    Voici mon "code" :
    (je met des guillemets pour code vous imaginez pourquoi..., Et tant qu'à faire je précise je débute sur les forums alors désolé si je ne connais pas encore les principes)


    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
    <script runat="server">
        void Page_Load()
        {
     
        }
        private void srcPrenomSelected(Object source, SqlDataSourceStatusEventArgs e)
        {
            if (e.AffectedRows != 0)
                lblTest.Text = " existe deja";
            else
                srcPrenom.Insert();
        }
     
        void myclick(object sender, EventArgs e)
        {
            try
            {    
                AccessDataSource MyAccessDataSource = new AccessDataSource();
                MyAccessDataSource.DataFile = Server.MapPath("~/App_Data/users.mdb");
                Parameter Param = new Parameter("Param");            
                TextBox tb = (TextBox)frmV1.FindControl("txtPrenom");                  
                Param.DefaultValue = tb.Text;
                MyAccessDataSource.SelectParameters.Add(Param);
                MyAccessDataSource.SelectCommand = "SELECT nom FROM users Where prenom=@Param";
                MyAccessDataSource .Selected+=new SqlDataSourceStatusEventHandler(srcPrenomSelected);
     
                    //var req = ((DataView)MyAccessDataSource.Select(DataSourceSelectArguments.Empty))[0]["nom"].ToString();       
            }
            catch (Exception z) { lblTest.Text = z.Message; }       
        }
     </script>

  4. #4
    Membre émérite Avatar de Ramajb
    Homme Profil pro
    ----------------------------
    Inscrit en
    Septembre 2007
    Messages
    476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ----------------------------

    Informations forums :
    Inscription : Septembre 2007
    Messages : 476
    Par défaut
    Tu as de-commenté l’appellation de la méthode Select par ton MyAccessDataSource

Discussions similaires

  1. [Méthodes]UML vs MERISE Lequel pour quoi ?
    Par Daniel258 dans le forum Méthodes
    Réponses: 5
    Dernier message: 31/03/2003, 11h49
  2. Gros Problème avec DirectShow et la méthode RELEASE
    Par Olivier Delmotte dans le forum DirectX
    Réponses: 3
    Dernier message: 10/03/2003, 18h10
  3. [Singleton] Différences avec méthodes statiques
    Par Franche dans le forum Design Patterns
    Réponses: 1
    Dernier message: 26/02/2003, 17h10
  4. Probleme d'impression avec la méthode TForm->Print()
    Par Kid Icarus dans le forum C++Builder
    Réponses: 13
    Dernier message: 31/07/2002, 14h26
  5. Cryptage en C selon la méthode de césat
    Par shenron dans le forum C
    Réponses: 2
    Dernier message: 31/05/2002, 08h22

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