Problèmes sur fonction + textbox

Jojo092 Messages postés 136 Date d'inscription samedi 24 septembre 2005 Statut Membre Dernière intervention 12 avril 2013 - 15 déc. 2006 à 17:49
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

3 réponses

cs_fcolo Messages postés 201 Date d'inscription mercredi 8 février 2006 Statut Membre Dernière intervention 20 février 2007 2
18 déc. 2006 à 09:13
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
0
Jojo092 Messages postés 136 Date d'inscription samedi 24 septembre 2005 Statut Membre Dernière intervention 12 avril 2013
18 déc. 2006 à 09:48
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
0
cs_fcolo Messages postés 201 Date d'inscription mercredi 8 février 2006 Statut Membre Dernière intervention 20 février 2007 2
18 déc. 2006 à 11:07
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
0
Rejoignez-nous