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 :

requete sql en c#


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 32
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 7
    Par défaut requete sql en c#
    bonjour ,
    j ai un pas pu inserer des donnees a ma base au début j'ai voulu recupere le resultat d'une requete sql dans une valiable pour l utiliser dans un second temps dans ma requete insert mai j ai pa arriver a faire ceci donc j'ai essayé d'ecrire ma requete select dans la requete insert comme ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    cmd = new SqlCommand("insert into [diplome_obt] values (select id from [diplome] 
    where (([filiere] = '" + ddlfiliere.SelectedValue + "') AND 
    ([nature_dip] = '" + ddlnaturedip.SelectedValue + "') AND 
    ([nom_etab] = '" + ddletablissement.SelectedValue + "') AND 
    ([univ] = '" + ddluniversite.SelectedValue + "')),cin.Text,txtdateobten.Text)", con);
    pouvez vous m 'aider soit a corriger cette requete soit a recuperer le resultat du select dans une variable
    merci

  2. #2
    Expert confirmé
    Avatar de popo
    Homme Profil pro
    Analyste programmeur Delphi / C#
    Inscrit en
    Mars 2005
    Messages
    2 972
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste programmeur Delphi / C#
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 2 972
    Par défaut
    Puisque tu utilise un SqlCommand, je pars du principe que tu utilise SQL Server.
    Si ce n'est pas le cas, pense à préciser la prochaine fois.

    Déjà ta requête n'est pas bonne au niveau de la syntaxe.
    En remplacer toutes les données tirées de l'écran par des valeur voilà ce que donne ta requête (j'ai volontairement sauté des lignes pour que ça soit plus parlant)
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    insert into [diplome_obt] 
    values 
    (
    	select id from [diplome] 
    	where 
    	(
    		([filiere] = 'Filiere') 
    		AND 
                    ([nature_dip] = 'Nature') 
    		AND 
    		([nom_etab] = 'Etablissement') 
    		AND 
    		([univ] = 'Université')
    	),'CIN','txtdateobten'
    )

    - Tu as le mot clé "VALUES" en trop car tu fait une requête de sélection pour remplir la table.
    - "CIN" et "txtdateobten" devraient être derrière l'id (ou alors je ne sais pas ce que tu cherches à faire et il faudra préciser).

    Voici ta requête en syntaxe correcte
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    insert into [diplome_obt] 
    (
    	select id, 'CIN', 'txtdateobten' from [diplome] 
    	where 
    	(
    		([filiere] = 'Filiere') 
    		AND 
                    ([nature_dip] = 'Nature') 
    		AND 
    		([nom_etab] = 'Etablissement') 
    		AND 
    		([univ] = 'Université')
    	)
    )

    Prends l'habitude de faire des requêtes paramétrées afin de sécuriser un peu plus le code (et accessoirement de ne pas te prendre la tête lorsque ces données seront des dates).
    Voila ce que ça donnerai.
    Code C# : 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
    using (SqlConnection connection = new SqlConnection(connectionString))
    {
    	String query = "INSERT INTO diplome_obt"
    	  + " SELECT ID FROM diplome"
              + " WHERE filiere=@Filiere AND nature_dip=@NatureDip AND nom_etab=@NomEtab AND univ=@Universite";
     
    	using (SqlCommand command = new SqlCommand())
            {
            	/* CA2100
             	 * Review SQL queries for security vulnerabilities */
            	command.Connection = connection;
     
    		command.Parameters.Add("@Filiere", SqlDbType.VarChar).Value = ddlnaturedip.SelectedValue;
            	command.Parameters.Add("@NatureDip", SqlDbType.VarChar).Value = ddlnaturedip.SelectedValue;
            	command.Parameters.Add("@NomEtab", SqlDbType.VarChar).Value = ddletablissement.SelectedValue;
            	command.Parameters.Add("@Universite", SqlDbType.VarChar).Value = ddluniversite.SelectedValue
     
            	command.CommandText = query;
     
            	connection.Open();
            	command.ExecuteNonQuery(); 
            }
    }

Discussions similaires

  1. Problème Requete SQL et QuickReport
    Par arnaud_verlaine dans le forum C++Builder
    Réponses: 7
    Dernier message: 07/01/2004, 09h31
  2. Prob de requete sql et variable
    Par agent-zaizai dans le forum ASP
    Réponses: 11
    Dernier message: 21/10/2003, 16h54
  3. requete sql
    Par autumn319 dans le forum ASP
    Réponses: 22
    Dernier message: 10/09/2003, 16h46
  4. Paramètre requete SQL (ADOQuery)
    Par GaL dans le forum C++Builder
    Réponses: 3
    Dernier message: 30/07/2002, 11h24
  5. Resultat requete SQL
    Par PierDIDI dans le forum Bases de données
    Réponses: 2
    Dernier message: 23/07/2002, 13h43

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