begin process at 2010 02 10 04:11:54
  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 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 formule Crystal report [ par Souliabdo ] Bonjour, Je voudrais savoir comment associer une formule à un champ dans crystal report. En fait j’ai un champ booléen je voulais le remplacer par u


Nos sponsors


Sondage...

Comparez les prix


HTC Hero

Entre 550€ et 550€

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
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 : 0,281 sec (4)

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