begin process at 2012 02 08 21:53:11
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C#

 > 

Base de données

 > 

SQL Server

 > 

requete avec jointure


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

requete avec jointure

mercredi 7 mai 2008 à 10:16:15 | requete avec jointure

elmotardo

bonjour,
je dois faire une requete avec une jointure de 2 tables, quand je fais la requête avec l'outile "requête" proposé par visual studio, ça me donne bien ce que je veux mais  quand je fais la même requête dans ma classe c# il n'en veut pas, il rentre bien dans le try mais pas dans la boucle.

voici le code :


oCommand = new SqlCommand("SELECT PRODUIT_CHAMP_CUSTOM.*, CHAMPS_CUSTOM.* FROM PRODUIT_CHAMP_CUSTOM INNER JOIN CHAMPS_CUSTOM ON PRODUIT_CHAMP_CUSTOM.CH_ID = CHAMPS_CUSTOM.CH_ID WHERE (PRODUIT_CHAMP_CUSTOM.PDT_ID = '"+idProduit+"') AND (PRODUIT_CHAMP_CUSTOM.PRODUIT_CHAMP_CUST_ID <> 28)", _connexion);
        try
        {
            connexion();
            ArrayList champsCustom = new ArrayList();
            SqlDataReader champCustom = oCommand.ExecuteReader();
            while (champCustom.Read())
            {
                produit.setIngredients("test");
                if ( champCustom["PRODUIT_CHAMP_CUSTOM.CHAMP_VALEUR_STRING"] != DBNull.Value )
                {
                    champsCustom.Add(new Double(champCustom["CHAMPS_CUSTOM.CH_NOM"].ToString(), champCustom["PRODUIT_CHAMP_CUSTOM.CHAMP_VALEUR_STRING"].ToString()));
                }
            }
            produit.setChampsCustom(champsCustom);
        }
        catch
        {
        }
        deconnexion();


merci d'avance
jeudi 8 mai 2008 à 23:05:09 | Re : requete avec jointure

coq

Administrateur CodeS-SourceS
Salut,

Déjà, renseigne toi sur les requêtes paramétrées.
PRODUIT_CHAMP_CUSTOM.PDT_ID est de quel type ?



/*
coq
MVP Visual C#
CoqBlog
*/
vendredi 9 mai 2008 à 08:49:47 | Re : requete avec jointure

elmotardo

je vais voir pour les requêtes parametrées, merci du conseil.
Quand au champ PRODUIT_CHAMP_CUSTOM.PDT_ID c'est un int tout ce qu'il y a de plus classique
vendredi 9 mai 2008 à 09:15:35 | Re : requete avec jointure

coq

Administrateur CodeS-SourceS
Oui donc il doit difficilement apprécier de recevoir la valeur entre quotes.
La requête paramétrée résoudra ceci aussi.



/*
coq
MVP Visual C#
CoqBlog
*/
vendredi 9 mai 2008 à 10:16:03 | Re : requete avec jointure

elmotardo

bon je viens de tester et ça ne donne rien de plus, voici le nouveau code

string sql = "SELECT PR.*, CH.* FROM PRODUIT_CHAMP_CUSTOM AS PR INNER JOIN CHAMPS_CUSTOM AS CH ON PR.CH_ID = CH.CH_ID WHERE (PR.PDT_ID = @idProduit) AND (PR.PRODUIT_CHAMP_CUST_ID <> @idNonVoulu)";
            SqlCommand cmd = new SqlCommand(sql,_connexion);
            DbParameter paramIdProduit = cmd.CreateParameter();
            paramIdProduit.ParameterName = "@idProduit";
            paramIdProduit.DbType = DbType.Int32;
            paramIdProduit.Value = int.Parse(idProduit);

            DbParameter paramIdNonVoulu = cmd.CreateParameter();
            paramIdNonVoulu.ParameterName = "@idNonVoulu";
            paramIdNonVoulu.DbType = DbType.Int32;
            paramIdNonVoulu.Value = 28;

            cmd.Parameters.Add(paramIdProduit);
            cmd.Parameters.Add(paramIdNonVoulu);

            try
            {
                connexion();

                ArrayList champsCustom = new ArrayList();
                SqlDataReader c = cmd.ExecuteReader();
               
                while (c.Read())
                {
                    champsCustom.Add(new Double("toto","tata"));
                    if (c["PR.CHAMP_VALEUR_STRING"] != DBNull.Value)
                    {
                        champsCustom.Add(new Double(c["CH.CH_NOM"].ToString(), c["PR.CHAMP_VALEUR_STRING"].ToString()));
                    }
                }
                produit.setChampsCustom(champsCustom);
            }
            catch { }
vendredi 9 mai 2008 à 11:10:18 | Re : requete avec jointure

coq

Administrateur CodeS-SourceS
Et donc que se passe t'il  ? Pas d'entrée dans la boucle (aucune entrée dans le jeu de résultats) ou erreur d'execution ?



/*
coq
MVP Visual C#
CoqBlog
*/
vendredi 9 mai 2008 à 11:29:56 | Re : requete avec jointure

elmotardo

pas d'entrée dans la boucle et il s'arrete au cmd.Read, les instructions après ne sont pas exécuter
vendredi 9 mai 2008 à 11:34:59 | Re : requete avec jointure

coq

Administrateur CodeS-SourceS
La structure try/catch n'est pas faite pour étouffer les erreurs mais pour les gérer, car là c'est visiblement le cas.



/*
coq
MVP Visual C#
CoqBlog
*/
vendredi 9 mai 2008 à 12:06:24 | Re : requete avec jointure

elmotardo

j'ai "catché" les exceptions et voilà ce que ça me donne ->

Une exception de première chance de type 'System.Data.SqlClient.SqlException' s'est produite dans System.Data.dll
Une exception de première chance de type 'System.InvalidOperationException' s'est produite dans System.Data.dll




vendredi 9 mai 2008 à 12:09:28 | Re : requete avec jointure

coq

Administrateur CodeS-SourceS
Heu oui, mais logiquement c'est le reste des détails de la première (SqlException) qui sont réellement parlants, car là c'est vague.



/*
coq
MVP Visual C#
CoqBlog
*/

1 2

Cette discussion est classée dans : champ, champs, produit, custom, champcustom


Répondre à ce message

Sujets en rapport avec ce message

recuperation de champ active directory [ par marc_dd ] Bonjour à tous, je suis actuellement sur un dedveloppement qui touche aux champs SAP inseré dans l'ADvoila ma question est ce que quelqu'un pourrait m recupuration des champs [ par abdosamine ] bonjour a tout je suit debutant en c# et je suis entrain de realiser une application de gestion de stock et je rencontre un problèm, je construit un Champs NumAuto incompatible avec replica [ par zrida2 ] Je souhaite répliquer ma base Access. Ce réplica me transforme mon compteur automatique séquentiel en compteur aléatoire et rend la base inutilisable. Vérification des champs avant d'enregistrer [ par Epitt ] Bonjour, je recherche quelle est la meilleure solution pour contrôler que plusieurs TextBox ont bien été compléter avant de procéder à l'enregistreme comment désactiver un champ TextBox? [ par trublue ] salut a tous,comment je fais pour activer et désactiver un champ TextBox a partir d'un RadioButton.ça veut dire que si le radiobutton est activer je p Afficher un champs a partir d'une liste déroulante [ par angel0513 ] Bonjour, J'essaie a partir d'une liste déroulante qui contient des noms de faire afficher le nom que j'ai choisi dans un champs a part, tous ceci es Somme sur un champ dans Crystal report [ par Souliabdo ] Bonjour, J’ai crée un dataset qui sert à une dataSource pour mon Rapport, dans la requete de mon DataSet, j’ai converti tous les champs VARCHAR en Dé [C#] Récupérer la valeur d'un champ Crystal Report [ par Gargouille ] Bonjour, Je cherche à récupérer via mon code C# la valeur d'un champ dans un état Crystal Report (version intégrée à Visual Studio 2008). Pour pouvoir [linq]update d'un champ d'une table [ par shadow1779 ] Bonjour a tous, J'ai un petit soucis avec l'utilisation de linq pour l'update d'un champs d'une de mes tables, le code a pourtant l'air correct d'apr


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 3,401 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales