Problèmes sur fonction + textbox

Messages postés
137
Date d'inscription
samedi 24 septembre 2005
Statut
Membre
Dernière intervention
12 avril 2013
- - Dernière réponse : cs_fcolo
Messages postés
201
Date d'inscription
mercredi 8 février 2006
Statut
Membre
Dernière intervention
20 février 2007
- 18 déc. 2006 à 11:07
Bonsoir à tous, avant tout je ne savais pas trop ou placer ce message, donc les modos pourront le déplacer après, désolé pour ca.
Sinon vpoilà mon problème. En C# avec évènements, j'ai crée une classe Vehicules_Neufs() et développer une petite fonction qui se connecte à ma BDD access pour récupérer le prix d'achat d'un véhicule. Et ensuite sur ce prix, je mets une commission de 1.5 pour la revente. J'ai ensuite crée une form frmTarification qui récupère aussi certaines données de ma BDD access et doit les afficher dans des textbox. Le problème est que une de ces textbox doit en fait m'afficher le prix de vente du véhicule en fonction de la méthode faite dans Vehicules_Neufs(), mais rien ne s'affiche. Donc j'aimerais savoir si quelqu'un pouvait m'apporter ces lumières sur ce problème. Je vous montre mon code, ca vous semblera peut-etre plus simple pour comprendre....

Classe Vehicules_Neufs() :

private OleDbConnection  mDB = new OleDbConnection();
private OleDbCommand cmd     = new OleDbCommand();
float prx                                     = 0;
float comm                                 = 1.5F;
public float tarif                           = 0;

public float PrixVenteNeuf()
{    mDB.ConnectionString @"Provider Microsoft.Jet.OLEDB.4.0; Data Source = C:\Objet\BddGC.mdb";
     mDB.Open();     cmd new OleDbCommand("SELECT Prix FROM auto WHERE auto.Occasion False;", mDB);
     OleDbDataReader reader = cmd.ExecuteReader();
     while (reader.Read())
     {
          prx = Convert.ToInt32(reader["Prix"]) ;
          tarif = prx * comm;
      }
      return (tarif);
}

Form frmTarification :

public partial class frmTarification : Form
{
    private OleDbConnection mDB          = new OleDbConnection();
    private DataSet dataAuto             = new DataSet();
    private OleDbDataAdapter cmd         = new OleDbDataAdapter();
    private DataViewManager dViewManager = new DataViewManager();
    private Vehicules_Neufs veh          = new Vehicules_Neufs();
    private Vehicules_Usagées veh1       = new Vehicules_Usagées();
    public frmTarification()
   {
        InitializeComponent();
        TarificationVehicule();
    }

    public void TarificationVehicule()
   {        mDB.ConnectionString @"Provider Microsoft.Jet.OLEDB.4.0; Data Source = C:\Objet\BddGC.mdb";
        mDB.Open();
        try
       {
            dataAuto.Clear();
            cmd = new OleDbDataAdapter("SELECT AnneeAchat, Prix, Marque_Modele, Couleur, NbPortes, PuissanceFiscale, Occasion FROM auto;", mDB);
            dataAuto = new DataSet();
            cmd.TableMappings.Add("Table", "auto");
            cmd.Fill(dataAuto);
            this.dViewManager = dataAuto.DefaultViewManager;
            this.cbxMarqueModele.DataSource = this.dViewManager;
            this.cbxMarqueModele.DisplayMember = "auto.Marque_Modele";
            this.txtTarifAnnee.DataBindings.Add("Text", this.dViewManager, "auto.AnneeAchat");
            this.txtTarifMarqueModele.DataBindings.Add("Text", this.dViewManager, "auto.Marque_Modele");
            this.txtTarifCouleur.DataBindings.Add("Text", this.dViewManager, "auto.Couleur");
            this.txtTarifNbPortes.DataBindings.Add("Text", this.dViewManager, "auto.NbPortes");
            this.txtTarifPuissance.DataBindings.Add("Text", this.dViewManager, "auto.PuissanceFiscale");
            this.txtTarifPrixAchat.DataBindings.Add("text", this.dViewManager, "auto.Prix");
            this.txtTarifPrixVente.Text = veh.PrixVenteNeuf().ToString();
        }
        finally
        {
            cmd.Dispose();
            mDB.Close();
        }
    }

    private void btnOK_Click(object sender, EventArgs e)
    {
         Close();
     }
}

Le problème se pose au niveau de la ligne en bleue + gras.

Merci d'avance pour tous ceux qui prendront le temps de m'aider!!!! Bonne soirée
Afficher la suite 

3 réponses

Messages postés
201
Date d'inscription
mercredi 8 février 2006
Statut
Membre
Dernière intervention
20 février 2007
1
0
Merci
Bonjour,

Pour commencer, je tiens à te dire que je connais rien en BDD.

Pour ton problème, je pense avant tout à une exception qui est levée mais que tu n'intercepte pas, tu va directement dans ton finally.

Essais de rajouter un catch() entre le try et le finally.

catch(Exception ex)
{
MessageBox.Show(this,ex.ToString());
}

De ce fait, tu pourras voir si tu as réellement une exception et de ce fait, tu ne passe jamais dans ta ligne bleu + gras.

f.colo
Commenter la réponse de cs_fcolo
Messages postés
137
Date d'inscription
samedi 24 septembre 2005
Statut
Membre
Dernière intervention
12 avril 2013
0
Merci
Bonjour, je tiens à te préciser que je ne passe pas directement dans le finally puisque le reste fonctionne et je vois bien mes textbox remplies par les instructions que je mets.... le problème, c'est qu'il me met la textbox en question à 0... Voilà tout. Et c'est ca que je ne'arrive pas à comprendre
Commenter la réponse de Jojo092
Messages postés
201
Date d'inscription
mercredi 8 février 2006
Statut
Membre
Dernière intervention
20 février 2007
1
0
Merci
De ce fait, le probleme ne provient pas de la ligne en bleu + gras mais de la fonction PrixVenteNeuf();
Tu as regarder en mode debug ce que te renvois la fonction?

Dans ta requette de selection, rentres - tu vraiment dans le while? peut etre que ton reader est vide donc tu n'initialise jamais la variable tarif et ca te renvois la valeur par defaut 0.

f.colo
Commenter la réponse de cs_fcolo