[RESOLU] combobox et datatextfield [C#]

combobox et datatextfield [C#] [RESOLU] - C#/.NET managed - Programmation

Marsh Posté le 24-01-2008 à 17:34:45    

Bonsoir à tous,
 
Je voudrais savoir s'il est possible d'avoir plusieurs champs dans un combobox par l'intermédiaire d'un datatextfield ?
 
Voici mon code :
 

Code :
  1. OdbcConnection connexion;
  2.     OdbcDataReader read_combo;
  3.     void Page_Load()
  4.     {
  5.          //connexion a la base de données via Web.config
  6.          connexion = new OdbcConnection(ConfigurationSettings.AppSettings["connex"]);
  7.          connexion.Open();
  8.        
  9.          if(!IsPostBack)
  10.          {
  11.            
  12.          OdbcCommand com_combo = new OdbcCommand("SELECT nom_util +','+ pnom_util FROM utilisateur;", connexion);
  13.          read_combo=com_combo.ExecuteReader();
  14.          combo_nom.DataSource = read_combo;
  15.          combo_nom.DataValueField = "nom_util";
  16.          combo_nom.DataTextField = "pnom_util";
  17.          combo_nom.DataBind();
  18.          }
  19.     }


 
Durand, pierre
Dupont, david
 
... avoir juste le nom de famille ne m'interesse pas car il peut y avoir redondance !
 
Merci pour votre aide, je vous serais reconnaissant !
 
bonne soirée
 
MaTT


Message édité par matinho le 25-01-2008 à 18:21:16
Reply

Marsh Posté le 24-01-2008 à 17:34:45   

Reply

Marsh Posté le 24-01-2008 à 17:57:01    

Créer un nouveau champs dans ta base qui contient le nom complet (NOM Prénom) et tu récupère cette colonne pour ta dataTextField.
 
Ou dans ton SELECT tu concatènes le NOM et le Prénom dans une même colonne

Message cité 1 fois
Message édité par MetalDestroyer le 24-01-2008 à 17:57:42
Reply

Marsh Posté le 24-01-2008 à 18:10:30    

MetalDestroyer a écrit :

Créer un nouveau champs dans ta base qui contient le nom complet (NOM Prénom) et tu récupère cette colonne pour ta dataTextField.
 
Ou dans ton SELECT tu concatènes le NOM et le Prénom dans une même colonne


On la concatène comment en SQL ?

Reply

Marsh Posté le 24-01-2008 à 18:33:05    

Reply

Marsh Posté le 25-01-2008 à 10:51:14    


C'est ce que j'ai fais, il me reste juste à savoir s'il existe un composant VS 2005 pour avoir 2 colonnes au lieu de 1 par défault du logiciel ...

Reply

Marsh Posté le 25-01-2008 à 11:23:48    

en SQL Server, il faut faire de la manière suivante :
SELECT (NOM + PRENOM) AS NomComplet, Adresse, blablabla
FROM maTable
WHERE mesConditions
 
Pour VS 2005, y a bien des composants pour des Listbox mais pour des DropDownList, je ne crois pas. Regarde du coté de http://www.codeproject.com il y a pas mal d'article/composant utile.

Message cité 1 fois
Message édité par MetalDestroyer le 25-01-2008 à 11:25:24
Reply

Marsh Posté le 25-01-2008 à 11:35:13    

MetalDestroyer a écrit :

en SQL Server, il faut faire de la manière suivante :
SELECT (NOM + PRENOM) AS NomComplet, Adresse, blablabla
FROM maTable
WHERE mesConditions
 
Pour VS 2005, y a bien des composants pour des Listbox mais pour des DropDownList, je ne crois pas. Regarde du coté de http://www.codeproject.com il y a pas mal d'article/composant utile.


 
Merci pour le site je regarde sa ! mais comprenant la requete rien ne m'affiche avec la concaténation ou sa me met 0. tu vois pourquoi ?

Reply

Marsh Posté le 25-01-2008 à 13:13:14    

il existe des controles COMBO BOX multicolonnes.  
Ces controles ne sont pas standards, et souvent payant. Personnellement, dans la boite ou je bosse, on a investi dans les composants INFRAGISTICS NET ADVANTAGE. Dans ce package, tu retrouves un ribanbelles de controles redéfini avec beaucoup plus de possibilité que les standards.  
 
Il existe peut être des gratuits, mais je ne les connais pas.

Reply

Marsh Posté le 25-01-2008 à 18:17:39    

L'Histoire est résolue, j'ai trouvé  :wahoo:  
 

Code :
  1. OdbcCommand com_combo = new OdbcCommand("SELECT CONCAT(nom_util,' ',pnom_util) as libelle FROM utilisateur;", connexion);
  2.          read_combo=com_combo.ExecuteReader();
  3.          combo_nom.DataSource = read_combo;
  4.          combo_nom.DataTextField = "libelle";
  5.          combo_nom.DataBind();


 
il fallait mettre un CONCAT devant les champs que je veux pour obtenir le résultat que je souhaitais (EX: DUPONT Etienne). Les cotes en vert servent à laisser un espace entre le nom et le prénom.
 
Je remercie ton aide MetalDestroyer (ton lien ma beaucoup aidé) et les personnes qui m'ont répondu.
 
A bientot ;)
 
Matinho


Message édité par matinho le 25-01-2008 à 18:19:15
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed