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

C# Discussion :

edition sql par textedit [Débutant]


Sujet :

C#

  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2012
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2012
    Messages : 238
    Par défaut edition sql par textedit
    salam

    je vient de débuté en C# avec visuel studio2012.
    j'ai ajouté ma base de donné par l’intermédiaire de l'assistant d'ajout de la base de donnée j'ai trouver mes table jusqu'ici tous va bien .

    ce que je veut faire est simple :
    - j'ai une table employer avec nom et age comme champ
    - j'ai un textedit
    - j'ai un datagridview

    je veut faire une requete d’employer qui ont un certain age que j’obtiens par le textedit et qui retourne les résultat sur le datagridview .

    pour le datagridview j'ai su comment le relier a des tables .

    j'ai chercher et j'ai trouver des articles sur ado mais c'était trop compliqué vus que je vient de débuté.

    ps:je suis un delphiste qui veut apprendre le C# en VS.

  2. #2
    Membre très actif
    Avatar de charouel
    Homme Profil pro
    Freelance
    Inscrit en
    Mars 2009
    Messages
    618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2009
    Messages : 618
    Billets dans le blog
    9
    Par défaut
    Ton base de données est sur Sql Server?

  3. #3
    Membre éprouvé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2012
    Messages : 53
    Par défaut
    Salut,
    si j'ai compris bien ton problème (si non explique toi bien )
    puisque tu as ajouter une source de données via l'assistant, un dataSet est créé automatiquement, tu vas le trouver dans l'explorateur de documents,
    il y a deux solutions, je vais te donner la plus simple dans ton cas.
    -la premier, et que tu ajout la requête dans le dataSet, en cliquant sur le bouton droit dans la table concerné, et choisir ajouter une requête, l'assistant va t'aider à personnaliser ta requête.
    une autre chose, si tu as déjà fait la liaison entre le dataGrid et la table, deux objets vont être créés automatiquement, un de type tableAdapter et un de type bindingSource, il sont placé au dessus de ta fenêtre, puisque tu vas les utiliser dans le code, c'est mieux de les renommer, et tu peut appeler ta requête comme une méthode appartenant à l'objet tableAdapter.
    un pseudo code de l'utilisation de la requête.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tableAdapterName.maReqete(param1,..);//la requête peut avoir plusieurs paramètres
    quant la requête est exécutée le dataGrid est automatiquement chargé, si les données doivent être chargées une seule fois pendant l'exécution de l'application, place la requête dans le chargement de la febêtre
    peut être que ça se voit long est compliqué, mais c'est simple que ça.
    bon chance

  4. #4
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2012
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2012
    Messages : 238
    Par défaut
    Citation Envoyé par charouel Voir le message
    Ton base de données est sur Sql Server?
    c'est access...

  5. #5
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2012
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2012
    Messages : 238
    Par défaut
    Citation Envoyé par b-med Voir le message
    Salut,
    si j'ai compris bien ton problème (si non explique toi bien )
    puisque tu as ajouter une source de données via l'assistant, un dataSet est créé automatiquement, tu vas le trouver dans l'explorateur de documents,
    il y a deux solutions, je vais te donner la plus simple dans ton cas.
    -la premier, et que tu ajout la requête dans le dataSet, en cliquant sur le bouton droit dans la table concerné, et choisir ajouter une requête, l'assistant va t'aider à personnaliser ta requête.
    une autre chose, si tu as déjà fait la liaison entre le dataGrid et la table, deux objets vont être créés automatiquement, un de type tableAdapter et un de type bindingSource, il sont placé au dessus de ta fenêtre, puisque tu vas les utiliser dans le code, c'est mieux de les renommer, et tu peut appeler ta requête comme une méthode appartenant à l'objet tableAdapter.
    un pseudo code de l'utilisation de la requête.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tableAdapterName.maReqete(param1,..);//la requête peut avoir plusieurs paramètres
    quant la requête est exécutée le dataGrid est automatiquement chargé, si les données doivent être chargées une seule fois pendant l'exécution de l'application, place la requête dans le chargement de la febêtre
    peut être que ça se voit long est compliqué, mais c'est simple que ça.
    bon chance
    merci pour t'a réponce ... j'ai trouver les tableAdapter et bindingSource et le datasource maintenant je veut faire un truc de ce genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT employer.nom FROM employer WHERE employer.age = (textedit.text)
    j’espère que c'est plus claire ... merci d'avance.

  6. #6
    Membre émérite Avatar de chamamo
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    588
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 588
    Par défaut
    Tu dois modifier la requête SELECT de ton tableAdapter, la requête va être exécuter en prenant en compte les critères que tu lui passes, il est fortement recommandé d'utiliser des requêtes paramétrées pour te protéger des injections SQL.

  7. #7
    Membre éprouvé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2012
    Messages : 53
    Par défaut
    Citation Envoyé par adelcrb Voir le message
    merci pour t'a réponce ... j'ai trouver les tableAdapter et bindingSource et le datasource maintenant je veut faire un truc de ce genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT employer.nom FROM employer WHERE employer.age = (textedit.text)
    j’espère que c'est plus claire ... merci d'avance.
    j'ai dit que tu doit modifier la requête pour qu'il prenne en critère de recherche l'age, utilise une requête paramétré
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select nom from employe where age = ?
    et tu doit donner l'age quant tu fait l'appel de la requête: (pseudo code)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tableAdapter.maRequete(textEdit.text.....);

  8. #8
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2012
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2012
    Messages : 238
    Par défaut
    Citation Envoyé par b-med Voir le message
    j'ai dit que tu doit modifier la requête pour qu'il prenne en critère de recherche l'age, utilise une requête paramétré
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select nom from employe where age = ?
    et tu doit donner l'age quant tu fait l'appel de la requête: (pseudo code)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tableAdapter.maRequete(textEdit.text.....);
    la je commence a avancer ... avec mon tableadapter j'ai créer une requete et sur age j'ai mis le poins d'interrogation ... la le VS ma créer un type toolstrip avec un champ ou je dois saisir l'age et quant je clique sur fillby1 ma requete s’exécute.

    alors maintenant je veut remplacer le champ que le toolstrip me donne par mon textedit dans le code (le code exact) je sais que c'est évident pour vous mais pour moi ça lé pas parce que je vien juste de commencer

  9. #9
    Membre éprouvé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2012
    Messages : 53
    Par défaut
    je sais pas moi les paramètres que tu dois fournir à la méthode
    supposons que ton textEdit contient l'age
    peut être que tu vas besoin juste d'un Cast
    si l'age dans la requête est de type int, tu doit faire un cast, y a deux manières:
    la première:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tableAdapter.maRequete((int)textEdit.text);
    la deuxième:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tableAdapter.maRequete(Convert.ToInt32(textEdit.text));
    la deuxième est mieux. C'est simple juste un Cast.

  10. #10
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    Citation Envoyé par adelcrb Voir le message
    c'est access...
    tant qu'à faire de passer sur un "vrai" language tu peux en profiter pour passer sur une vraie base de données (sql server / sql server ce)
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  11. #11
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2012
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2012
    Messages : 238
    Par défaut
    Citation Envoyé par b-med Voir le message
    je sais pas moi les paramètres que tu dois fournir à la méthode
    supposons que ton textEdit contient l'age
    peut être que tu vas besoin juste d'un Cast
    si l'age dans la requête est de type int, tu doit faire un cast, y a deux manières:
    la première:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tableAdapter.maRequete((int)textEdit.text);
    la deuxième:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tableAdapter.maRequete(Convert.ToInt32(textEdit.text));
    la deuxième est mieux. C'est simple juste un Cast.
    voila j'ai créer la requete je lé nommé requete juste pour faire l’essaie mon tableadapter je lé nommé poste donc voila le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    poste.requette(Convert.ToInt32(textbox1.text));
    ça génère cette erreur :
    Erreur 1 Aucune surcharge pour la méthode 'requette' ne prend d'arguments
    meme avec ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    poste.requete(textbox1.text);
    mercii

  12. #12
    Membre éprouvé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2012
    Messages : 53
    Par défaut
    l'exception veut dire que les paramètres sont incorrectes, peut être insuffisants
    tu dois indiquer la table que tu veut remplir par la requête, vérifie le toolstirp qui s'affiche pour savoir les paramètres que tu dois fournir et leurs types.
    pour le nom de la table, tu dois écrire le nom du dataSet point le nom de la table, pseudo code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    poste.requette( nomDataSet.NomTable, Convert.ToInt32(textbox1.text));
    juste débute le nom et visual studio va t'aider.

  13. #13
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2012
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2012
    Messages : 238
    Par défaut
    Citation Envoyé par b-med Voir le message
    l'exception veut dire que les paramètres sont incorrectes, peut être insuffisants
    tu dois indiquer la table que tu veut remplir par la requête, vérifie le toolstirp qui s'affiche pour savoir les paramètres que tu dois fournir et leurs types.
    pour le nom de la table, tu dois écrire le nom du dataSet point le nom de la table, pseudo code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    poste.requette( nomDataSet.NomTable, Convert.ToInt32(textbox1.text));
    juste débute le nom et visual studio va t'aider.
    merci ça fonction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    poste.requette(productionDataSet.Poste,textBox1.Text)
    donc si je comparent bien le adaptertable nous permet de faire des query ou affichez des tables le blinding source et lobjet qui fait la liaison entre la base de donnée(dataset) et notre adaptertable ... j'aimerai bien savoir s'il y a une petite formation ou tutoriel pour ce familiarisé avec le VS .

    je vais mettre résolut ... mais j'aimerai bien posé une dernière question ... quel sont les fonction qui nous permettent de manipulé les table est les enregistrement (ouvrir une table ou la fermer , ajouter nouveau enregistrement ce déplacé dans une table,mise a jour , surpression ,accéder a un enregistrement spécifique(fieldbyname))

    je vous remercie beaucoup b-med

  14. #14
    Membre éprouvé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2012
    Messages : 53
    Par défaut
    le tableAdapter permet de manipuler la table, et dedans tu peux ajouter n'importe qu'il type de requête(DELETE, INSERT, UPDATE...)
    pour ajouter un enregistrement, utilise une requête d’insertion INSERT, DELETE pour la suppression et ainsi de suite, tu peux ajouter ces requêtes dans dans le tableAdapter, et les appeler comme la précédante.
    j'ai pas bien compris:
    (ouvrir une table ou la fermer, ce déplacé dans une table,accéder a un enregistrement spécifique(fieldbyname))
    toi tu veux juste charger des données ou les modifier, comment tu ouvre ou tu ferme une table?!! .
    mais pour avoir un champ spécifique, il faut une requête qui obtient le champ par identifiant si il y a un, sinon par le nom ou je sais pas moi...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT quoi from quoi WHERE nom/ID = ?

  15. #15
    Membre éprouvé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2012
    Messages : 53
    Par défaut
    Tu as besoin de pas mal de choses, tu dois lire un tuto
    en tout cas, je vais te donner une astuce
    quand tu dispose d'un dataSet, tu peux déclarer deux types d'objets,
    type d'une table parmi ta base de données, pseudo code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nomDataSet.NomTableDataTable maTable.
    maTable est une variable, mais ne contenant rien, pour la remplir tu dois utiliser une requête
    quand tu ajout une requête par l'assistant, il te donne la main pour nommer ta requête, il te donne deux champs (voir l'image)

    c'est la même requête,mais elle peut faire deux choses:
    -remplissage(champ en haut)
    -et elle peut retourner les données de la table dans une variable(champ en bas)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    maTable = MonAdapter.getData(...);
    maintenant la variable maTable contient le résultat de la requête,
    mais malheureusement il contient une table, pour récupérer une ligne, utilise le 2eme objet, code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nomDataSet.NomTableDataRow maLigne = maTable.Rows[indice];
    maintenant la variable maLigne contient ce que tu veux
    tu peux l'utiliser comme suite:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string str = maLigne.nom;//la variable str va contenir le nom...
    je souhaite que ça soit compréhensible, j'ai fait mon mieux, je suis fatigué
    si ça t'a aidé utilise
    Images attachées Images attachées  

  16. #16
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2012
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2012
    Messages : 238
    Par défaut
    une seul ne suffirai pas pour te remercier ...

  17. #17
    Membre éprouvé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2012
    Messages : 53
    Par défaut
    Citation Envoyé par adelcrb Voir le message
    une seul ne suffirai pas pour te remercier ...
    j'ai pas demandé un remerciement, juste information pour les deux derniers messages si ils sont utiles, sinon tu demande une explication, parce qu'ils sont assez long et peut être compliqués
    en tt cas bon chance à toi

  18. #18
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2012
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2012
    Messages : 238
    Par défaut
    Citation Envoyé par b-med Voir le message
    j'ai pas demandé un remerciement, juste information pour les deux derniers messages si ils sont utiles, sinon tu demande une explication, parce qu'ils sont assez long et peut être compliqués
    en tt cas bon chance à toi
    justement je voulait te demander comment faire pour fermer un adaptertable ... par exemple sur delphi je fait monadoquery.open; et j'ai ma requete qui s'ouvre ou ma table sur visuel studio j'ai remarqué que touts les tables sont active par défaut... merci.

  19. #19
    Membre éprouvé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2012
    Messages
    53
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Maroc

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2012
    Messages : 53
    Par défaut
    Salut, tu dois lire un petit cour pour bien différencier le mode connecté et le mode déconnecté. voila le lien:
    https://docs.google.com/viewer?a=v&q...QFExmP_46G-Abg

    tu n'as pas besoin de fermer ton tableAdapter, ce que tu as dit pour delphi, tu ferme l'objet de commande pas le tableAdapter, en C# tu dois ouvrir et fermer l'objet commande, toi tu n'as pas l'utilisé via le code.
    lire le document et tu vas comprendre.

  20. #20
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2012
    Messages
    238
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2012
    Messages : 238
    Par défaut
    merci mon amis j’arrête pas d’apprendre jour après jour ... la je suis bloqué dans une requête paramétré et imbriqué ... depuis hier j'ai réussi a faire des requete paramétré mais la je rencontre ce problème :
    exp

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    select ....
    from ....
    where .parametre... and not in (select ... from ... where..parametre.. )

    quant je met des valeur direct , la requete marche sans problème quant et quant je met des paramètre dans la première requete et des valeur dans la deuxième la aussi ça passe, quant je met les paramètre en première et dans la requete imbriqué la ça coince ... au faite ça donne une requete vide

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [MySQL] Supprimer entrée dans base sql par un simple clique
    Par mickado dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 29/03/2007, 17h15
  2. Nombre maximum de requettes sql par page
    Par ilya79 dans le forum Langage SQL
    Réponses: 1
    Dernier message: 22/09/2006, 22h36
  3. Réponses: 2
    Dernier message: 17/08/2006, 11h49
  4. [VBA] requête SQL par ItemsSelected
    Par Pitou5464 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 25/04/2006, 19h24
  5. [MySQL] UPDATE base SQL par un script
    Par vanakor dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 21/02/2006, 10h22

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