Changer un textbox selon combobox

Achemlal -  
cysod1879 Messages postés 129 Statut Membre -
Bonjour,
j'ai un combobox qui contient des ID_GROSSISTE , et un textbox qui doit contenir des Nom_Grossiste
je veux que quand je selectionne un id_grossiste dans un combobox , le textbox affiche le nom_grossiste selon cet ID_grossiste
quand je selectionne un ID_GROSSISTE le textbox ne change pas .

private void comboBox1_SelectedIndexChanged(object sender, System.EventArgs e)
{
#region change txt
SqlConnection sSqlcon = new SqlConnection(System.Configuration.ConfigurationSettings.AppSettings["ConnectionString"]);
sSqlcon.Open();
string Req= "Select ID_Grossiste From grossiste where NOM_GROSSISTE = '"+comboBox1.SelectedItem+"'";
cmd = new SqlCommand(Req,sSqlcon);
SqlDataReader dr = cmd.ExecuteReader();

while (dr.Read())
{
if(comboBox1.Text!="TOUT")
{
textBox1.Text = dr["NOM_GROSSISTE"].ToString();
}
}
dr.Close();
sSqlcon.Close();
#endregion

}

comboBox1.Text!="TOUT" : "TOUT" je l'ai ajouté au combox pour que ça affiche tous les grossiste ..

6 réponses

  1. Achemlal
     
    le problème c'est que quand je selectionne un ID_GROSSISTE dans le combo , le textbox ne donne pas le nom_grossiste de cet ID :
    exemple :
    ID_GROSSISTE = 1 et NOM_GROSSISTE=A
    je choisis 1 et ça me donne B ( le grossiste qui suit A)
    et je vois que ce problème vient de
    comboBox1.Items.Add("TOUT");
    que j'ai ajouté au combobox c'est lui qui cause ce problème mais je ne sais pas comment le régler , voici comment j'ai remplie le combobox :


    private void COMBO_Load(object sender, System.EventArgs e)

    #region populate comboGro
    string Req= "Select ID_Grossiste,NOM_Grossiste From grossiste";
    dsMvtArticle = new DataSet();
    SqlDaP11 = new SqlDataAdapter(Req,sqlConn1);

    SqlDaP11.Fill(dsMvtArticle,"GROSSISTE");

    DataRow[] drarray;
    drarray = dsMvtArticle.Tables[0].Select();
    if(drarray.Length>0)
    {

    comboBox1.Items.Add("TOUT");
    for( int j=0; j<drarray.Length; j++)
    {
    comboBox1.Items.Add(drarray[j][0].ToString());
    }

    }
    if(comboBox1.Items.Count>0)
    {
    comboBox1.SelectedIndex=0;
    //comboRepartiteur.SelectedIndex=0;//.SelectedIndex=-1;

    }
    #endregion
    }


    quand je choisis TOUT , le textbox m'affiche le 1ér NOM_GROSSISTE , normalement c'est quand je choisis 1 (dans le combo) que le 1er NOM_GROSSISTE doit s'afficher ..
    j'espère être claire.
    MERCI
    0
  2. dodo7263 Messages postés 392 Date d'inscription   Statut Membre Dernière intervention   18
     
    Salut,

    Ta requête ne devrait pas plutôt être :

    "Select NOM_GROSSISTE From grossiste where ID_Grossiste = '"+comboBox1.SelectedItem+"'";

    @++
    0
  3. Achemlal
     
    oui pareil je peux enlever NOM_GOSSISTE mais ça ne résous pas mon problème
    0
  4. Achemlal
     
    le problème vient de la ligne comboBox1.Items.Add("TOUT");
    que j'ai ajouté , elle prend prend le 1er index du combobox à la place de 0

    combobox contient :
    TOUT
    0
    1
    2
    3
    4
    5
    6
    .....

    je dois avoir A (dans le textbox) quand je selectionne 0 , et B pour 1 , et C pour 2
    mais là quand j choisis 0 le textbox affiche B , et 1 pour C ... et pour "TOUT" le textbox affiche A
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. dodo7263 Messages postés 392 Date d'inscription   Statut Membre Dernière intervention   18
     
    Pourquoi tu n'utilises pas le databinding du genre :

    TextBox1.DataBindings.Add("Text", combobox1, "SelectedItem");

    Comme ça quand la valeur du combo change celle du textbox aussi

    @++
    0
    1. Achemlal
       
      deja la valeur de textbox change quand je selectionne dans le combobox
      0