Multiple select

Résolu
cs_coucou008 Messages postés 20 Date d'inscription lundi 9 juillet 2012 Statut Membre Dernière intervention 11 septembre 2012 - 9 août 2012 à 18:56
cs_coucou008 Messages postés 20 Date d'inscription lundi 9 juillet 2012 Statut Membre 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

5 réponses

krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 49
13 août 2012 à 14:36
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é. -
3
krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 49
10 sept. 2012 à 16:36
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é. -
3
NHenry Messages postés 15116 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 9 mai 2024 159
9 août 2012 à 21:39
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
0
cs_coucou008 Messages postés 20 Date d'inscription lundi 9 juillet 2012 Statut Membre Dernière intervention 11 septembre 2012
10 sept. 2012 à 13:10
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_coucou008 Messages postés 20 Date d'inscription lundi 9 juillet 2012 Statut Membre Dernière intervention 11 septembre 2012
11 sept. 2012 à 15:05
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
0
Rejoignez-nous