Bienvenue sur Labo-dotnet Identification | Enregistrement | Faq

Windows Application

Démarré par kiwiCH à 04-29-2008 9:09. Le sujet a 1 réponse(s).

Print Search
Sort Posts:    
   04-29-2008, 9:09
kiwiCH n'est pas en ligne. Dernière activité : 09/05/2008 07:47:08 kiwiCH

Non Noté
Rejoint : 04-29-2008
Messages : 2
c# : Instance d'objet
Reply Quote
Bonjour, voici un code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using ComponentFactory.Krypton.Toolkit;
namespace TheProject
{
public partial class frmViewDetailRecette : Form
{
private Int32 _idRecette;
public Int32 IdRecette
{
get { return _idRecette; }
set { _idRecette = value; }
}
private void frmViewDetailRecette_Load(object sender, EventArgs e)
{
}
public void InitializeData()
{
dataBase mydatabase = new dataBase("localhost", "theproject", "root");
bool connectionStatus = mydatabase.updateAll("SELECT * FROM xdb_recetteComposant WHERE recette=" + IdRecette.ToString() + "");

kryptonDataGridView1.DataSource = mydatabase.myDataTable;
kryptonDataGridView1.Columns["catName"].Visible = false;
kryptonDataGridView1.Columns["category"].Visible = false;
kryptonDataGridView1.Columns["name"].HeaderText = "Nom";
kryptonDataGridView1.Columns["price"].HeaderText = "Prix";

DataTable table = (DataTable)kryptonDataGridView1.DataSource;
Int32 totalPrice = 0;

foreach (DataRow row in table.Rows)
{
totalPrice += Int32.Parse(row["price"].ToString());
}
toolStripStatusLabel1.Text = totalPrice.ToString();
}
}
}

Et le soucis, toujours après cette ligne:
bool connectionStatus = mydatabase.updateAll("SELECT * FROM xdb_recetteComposant WHERE recette=" + IdRecette.ToString() + "");

j'ai une:

La référence d'objet n'est pas définie à une instance d'un objet.

L'idée ici, c'est que sa va chercher dans ma base de donnée les composants d'une recette, recette que j'ai sélectionner "afficher les détails" dans la form qui appelle le code ci-dessus.

Si vous avez une idée je suis preneur !

Meilleures salutations !
Adresse IP : Connecté   Rapport 
   05-02-2008, 16:57
okavango n'est pas en ligne. Dernière activité : 27/11/2008 18:08:04 okavango


Rejoint : 06-23-2006
Messages : 409
Wink [;)] Re : c# : Instance d'objet
Reply Quote
Salut !
Si tu relis bien ton code, tu peux constater que dans la ligne où une exception est levée, tu fais un "IdRecette.ToString()" et dans ton message d'erreur tu as :
- "La référence d'objet ..." :  il s'agit donc d'un objet ayant une référence, donc on parle de CLASSE.
- "... n'est pas définie à une instance d'un objet" : ici on dit clairement qu'il n' y a pas d'instance d'objet (new MonObjet() ...) liée à cette référence.

Autrement dit, la variable IdRecette n'a pas été initialisée au chargement de ta form !!!

Et je te conseille d'utiliser le typage par valeur propre à C# c'est plus simple à manipuler (tu ne manipules pas de références ! Eh oui !) et tu n'as pas besoin d'appeler ToString() à chaque fois. Avec le type (par valeur) de C# int  il y a un appel de ToString() implicite. Et tu peux appeler les mêmes méthodes, je crois, que celles du type référence de .Net Int32.

Voila,
Je crois que le problème vient de là alors bon codage.
A+

Conseil du jour :
Dans Visual Studio (si tu l'utilises !) ils existent des outils à dispo des développeurs !
Utilises-les !
Il ya  :
- Les breakpoints qui vont te servir de point d'arrêt d'application.
- La CallStack qui va te dérouler les appels des fonctions et te signaler par conséquent les fonctions non appelées et appelées.
- L'exécution en pas à pas qui te permet d'exécuter ton code au fur et à mesure que tu appuies sur une touche (F10 ou F11)
- Le quickwatch qui te permet de voir le résultat d'une expression après son exécution.
etc ...

Renseigne-toi sur ces outils de débuggage, ils sont très performants et tu perdras moins de temps !
Aussi, dès que tu as ce genre d'erreur par expérience tu sauras directement qu'un objet n'a pas été instanciée.

Okavango

Adresse IP : Connecté   Rapport 
Labo-dotnet » Programmation .... » Windows Applica... » Re : c# : Instance d'objet

Sponsorisé par Community Server


Conditions d’utilisation et Copyright
Respect de la vie privée