Multiple select [Résolu]

Messages postés
20
Date d'inscription
lundi 9 juillet 2012
Dernière intervention
11 septembre 2012
- - Dernière réponse : cs_coucou008
Messages postés
20
Date d'inscription
lundi 9 juillet 2012
Dernière intervention
11 septembre 2012
- 11 sept. 2012 à 15:05
bonjour
voila mon code je veux faire deux select sur deux tables différent en meme temps mais sa marche pas ? si quelqu'un peut m'aider ?

     SqlDataReader rs;
            SqlCommand command = new System.Data.SqlClient.SqlCommand("SELECT * FROM Client where code_client='4593' ;", ConnectBase.getinstance().Connection());
            
            rs = command.ExecuteReader();
            
            if (rs.Read() == true)
            {
                // mettre à jour le code client
                // Variable_globale.MettreAjoutCodeClient(Convert.ToInt32(code_client.Text));
                //Variable_globale.MettreAjourSuivieAudit(Convert.ToString(suivi_audit.SelectedItem));

                //code_client.Text = rs["code_client"].ToString();
                string Etat = rs["Cp"].ToString();
                adresse1 = rs["adresse1"].ToString();
                adresse2 = rs["adresse2"].ToString();
                //telephone = rs["telephone"].ToString();
                ville = rs["ville"].ToString();
                pays = rs["pays"].ToString();
                listBox1.Items.Add(rs["pays"].ToString());
                textBox1.Text = rs["pays"].ToString();


            }
            rs.NextResult();
            //#################################### Requete listes des produits ##################################################

            System.Data.SqlClient.SqlDataReader rs1;
            System.Data.SqlClient.SqlCommand comm1 = new System.Data.SqlClient.SqlCommand("SELECT * FROM Produit where qte_annuelle='200'", ConnectBase.getinstance().Connection());
            
            rs1 = comm1.ExecuteReader();
           
            while (rs1.Read())
            {
                //ListItem li = new ListItem();
                //iTextSharp.text.List<string> list_groupe = new iTextSharp.text.List<string>();
                //lis.Items.Add(rs1["nom_produit"].ToString());
                listBox1.Items.Add(rs1["nom_produit"].ToString());
                listBox2.Items.Add(rs1["essence"].ToString());
                textBox2.Text = listBox1.Items[0].ToString();
            }


Merci
Afficher la suite 

Votre réponse

5 réponses

Meilleure réponse
Messages postés
1863
Date d'inscription
lundi 28 novembre 2005
Dernière intervention
14 février 2015
36
3
Merci
Salut,

Dans ton code, tu utilises 2 commandes différentes (command et comm1) et 2 readers différents (rs et rs1).

Il ne s'agit donc pas de 2 requêtes en même temps, mais de deux requêtes indépendantes l'une après l'autre.

Je vois 2 solutions :
- Enlever le rs.NextResult();
La commande qui t'a donné le rs ne contient qu'un seul SELECT. Il ne faut donc pas faire un NextResult().

- Faire, comme tu l'indiques dans ton message, deux SELECT dans une seule requête. Pour ça, il faut remplacer la ligne de ta première commande par :
SqlCommand command = new SqlCommand("SELECT * FROM Client where code_client='4593' ; SELECT * FROM Produit where qte_annuelle='200'", ConnectBase.getinstance().Connection());

Et après le rs.NextResult(), tu fais juste while (rs.Read()).
Pas de rs1 ou de conn1


Maintenant, quelques remarques :
- Tu ne fermes pas tes connexions, ni tes commandes, ni tes readers. C'est très mal. Tu peux te renseigner sur le mot-clé using.

- qte_annuelle='200'. Je suppose que qte_annuelle est un entier. Pas de quote autour de 200 (même chose pour code_client).

- ConnectBase.getinstance().Connection(). Merci de commencer tes méthodes, propriétés, événements, classes, interfaces, namespaces et énumérations (je crois qu'il ne manque rien) par des majuscules, et bien sûr, chaque autre mot doit également commencer par une majuscule.
De plus, en C#, les getters sans paramètre (GetMachin()) doivent plutôt être remplacés par une propriété. Enfin, le nom d'une méthode doit commencer par un verbe (pas "Connection()").
Même si je n'ai pas le code derrière, je pense que ton appel devrait plutôt ressembler à ça : ConnectBase.Instance.Connect()


Krimog : while (!(succeed = try())) ;
- Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé. -

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 117 internautes nous ont dit merci ce mois-ci

Commenter la réponse de krimog
Messages postés
1863
Date d'inscription
lundi 28 novembre 2005
Dernière intervention
14 février 2015
36
3
Merci
Bonjour,

Je ne connais pas cette bibliothèque, cependant voici quelques erreurs que j'ai pu voir dans le code :
Chunk myFooter = new Chunk();

Ici, tu crées un nouveau footer.
for (int i = 1; i <= pageN; i++) 
{ 
    myFooter = new Chunk("Page " + (i), FontFactory.GetFont(FontFactory.HELVETICA_OBLIQUE, 8, GrayColor.BLUE)); 
}

Ici, tu crées à chaque fois un nouveau footer. Donc la ligne du dessus peut être remplacée par
Chunk myFooter;
.
Autre problème : dans ta boucle, tu crées à chaque fois un Chunk appelé myFooter, mais tu n'en fais rien. Tu ne fais rien dessus dans la boucle. Au final, il n'est ajouté à un PdfPCell qu'après la boucle, donc seule la dernière itération de ta boucle est ajoutée comme footer.

Krimog : while (!(succeed = try())) ;
- Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé. -

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 117 internautes nous ont dit merci ce mois-ci

Commenter la réponse de krimog
Messages postés
14383
Date d'inscription
vendredi 14 mars 2003
Dernière intervention
10 février 2019
153
0
Merci
Bonjour,

Afin d'améliorer les réponses possibles, il faudrait avoir une idée plus précise de ta demande.

Sinon, regardes la clause INNER JOIN ou GROUP BY.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list
---
Mon site
Commenter la réponse de NHenry
Messages postés
20
Date d'inscription
lundi 9 juillet 2012
Dernière intervention
11 septembre 2012
0
Merci
Bonjour
merci beaucoup krimog pour votre réponse et vos conseils je suis débutante donc voila :)

je viens de créer un rapport pdf de mon application je veux comment insérer le N° de page ?

mon rapport compte entre 15 et 50 pages il les crée automatiquement donc me reste que comment intégrer le N° des pages

voila j'ai fait cette bout de code mais il m'affiche que le N° de la première page c'est tout

/codePdfPTable footerTbl = new PdfPTable(1);
footerTbl.TotalWidth = doc.PageSize.Width;
footerTbl.HorizontalAlignment = Element.ALIGN_CENTER;
//int j= doc.PageCount.GetType();
Chunk myFooter = new Chunk();

int pageN = wri.PageNumber;


for (int i = 1; i <= pageN; i++)
{
myFooter = new Chunk("Page " + (i), FontFactory.GetFont(FontFactory.HELVETICA_OBLIQUE, 8, GrayColor.BLUE));


}
PdfPCell footer = new PdfPCell(new Phrase(myFooter));
footer.Border = Rectangle.NO_BORDER;
footer.HorizontalAlignment = Element.ALIGN_CENTER;
footerTbl.AddCell(footer);/code

Merci
Commenter la réponse de cs_coucou008
Messages postés
20
Date d'inscription
lundi 9 juillet 2012
Dernière intervention
11 septembre 2012
0
Merci
Bonjour,

j'ai développé une application sur mon pc et sa tourne bien maintenant je dois la déployer sur un serveur (elle va être visible partout dans le monde)
1- comment je fais le déploiement?
2- comment je copie ma base de données sur le serveur?
3-comment je modifie le fichier App.config

Merci
Commenter la réponse de cs_coucou008

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.