Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1461 connectés 

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  [RESOLU] - [C#] - NullReferenceException

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[RESOLU] - [C#] - NullReferenceException

n°1856052
skyline86
Posté le 27-02-2009 à 15:46:04  profilanswer
 

Bonjour, j'ai un message NullReferenceException
sur la ligne
 

Citation :

Program.monFormulaire.lb_log.BeginInvoke(new GPRSListener.Principale.affichageLog(Program.monFormulaire.l­og), new object[] { resultat });


 
 
et je ne comprend pas pourquoi cela ne fonctionne pas. Est ce que quelqu'un peut m'aider ???
 
Fichier 1 : Program.cs :
 

Citation :

using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
 
namespace GPRSListener
{
static class Program
{
public static Principale monFormulaire;
/// <summary>
/// Point d'entrée principal de l'application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Principale());
}
}
}


 
 
 
Fichier 2 : principale.cs :
 

Citation :

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using MySql.Data.MySqlClient;
using System.Net.Sockets;
using System.Net;
using System.IO;
using System.Collections;
using System.Threading;
 
namespace GPRSListener
{
public partial class Principale : Form
{
private List<Boitier> maListeBoitier = new List<Boitier>();
private List<TCPConnexion> maListeTCPConnexion = new List<TCPConnexion>();
private MySQL maConnexion;
private Thread monThread = null;
private IPAddress IPlocal = IPAddress.Parse("127.0.0.1" );
public delegate void affichageLog(string msg);
 
public Principale()
{
InitializeComponent();
maConnexion = new MySQL("127.0.0.1", "3306", "opthortest", "root", "root" );
}
 
private void btn_ecouter_Click(object sender, EventArgs e)
{
MySqlDataReader monReader = maConnexion.execute_select_multi("SELECT id_device_affect as 'boitier' FROM affect_device WHERE '" + DateTime.Today.ToString("yyyy-MM-dd" ) + "' BETWEEN start_date AND end_date" );
 
// création des objets Boitier
while (monReader.Read())
{
maListeBoitier.Add(new Boitier(monReader.GetInt32("boitier" )));
}
 
// création des TcpListener en fonction de la liste des Boitiers
for (int i = 0; i < maListeBoitier.Count; i++)
{
maListeTCPConnexion.Add(new TCPConnexion(maListeBoitier[i].get_port()));
}
}
 
public void log(string msg)
{
lb_log.Items.Add(msg);
int index = lb_log.Items.IndexOf(msg);
lb_log.SetSelected(index, true);
}
}
}


 
 
 
Fichier 3 : Boitier.cs :
 

Citation :

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MySql.Data.MySqlClient;
 
namespace GPRSListener
{
public class Boitier
{
/* ***********************************************************
* ATTRIBUTS
* ********************************************************* */
private MySQL maConnexion2;
private int idBoitier;
private string nomBoitier;
private int port;
private int idBus;
private string nomBus;
private int idReseau;
private string nomReseau;
private int idCampagne;
private string nomCampagne;
 
/* ***********************************************************
* CONSTRUCTEUR
* ********************************************************* */
public Boitier(int boitierID)
{
// Ouverture d'un nouvelle connexion à la base de données
maConnexion2 = new MySQL("127.0.0.1", "3306", "opthortest", "root", "root" );
 
this.idBoitier = boitierID;
 
/* Récupération du port correspondants au boitier*/
port = int.Parse(maConnexion2.execute_select_unique("SELECT port FROM device WHERE id_device = " + boitierID));
MySqlDataReader monReader = maConnexion2.execute_select_multi("SELECT id_bus_affect as 'bus', id_campaign_affect as 'campagne' FROM affect_device WHERE id_device_affect = " + idBoitier + " AND '" + DateTime.Today.ToString("yyyy-MM-dd" ) + "' BETWEEN start_date AND end_date" );
 
if (monReader.Read())
{
idBus = monReader.GetInt32("bus" );
idCampagne = monReader.GetInt32("campagne" );
}
monReader.Close();
 
idReseau = int.Parse(maConnexion2.execute_select_unique("SELECT id_network_campaign FROM campaign WHERE id_campaign = " + idCampagne));
 
/* Récupération des noms correspondants aux Identifiants */
nomBoitier = maConnexion2.execute_select_unique("SELECT name FROM device WHERE id_device = " + idBoitier);
nomCampagne = maConnexion2.execute_select_unique("SELECT name FROM campaign WHERE id_campaign = " + idCampagne);
nomBus = maConnexion2.execute_select_unique("SELECT name FROM bus WHERE id_bus = " + idBus);
nomReseau = maConnexion2.execute_select_unique("SELECT name FROM network WHERE id_network = " + idReseau);
maConnexion2.close();
}
 
/* ***********************************************************
* METHODES
* ********************************************************* */
 
/* Retourne l'ID du Boitier */
public int get_idBoitier()
{
return idBoitier;
}
 
/* Retourne le numéro de port */
public int get_port()
{
return port;
}
 
/* Retourne l'ID du Bus */
public int get_idBus()
{
return idBus;
}
 
/* Retourne l'ID du Réseau */
public int get_idReseau()
{
return idReseau;
}
 
/* Retourne l'ID de la Campagne */
public int get_idCampagne()
{
return idCampagne;
}
 
/* Retourne le nom de la Campagne */
public string get_NomCampagne()
{
return nomCampagne;
}
 
/* Retourne le nom du Réseau */
public string get_NomReseau()
{
return nomReseau;
}
 
/* Retourne le nom du Bus */
public string get_NomBus()
{
return nomBus;
}
 
/* Retourne le nom du Boitier */
public string get_NomBoitier()
{
return nomBoitier;
}
}
}


 
 
 
Fichier 4 : TCPConnexion.cs :

Citation :


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net.Sockets;
using System.Windows.Forms;
using System.Threading;
 
namespace GPRSListener
{
public class TCPConnexion
{
private TcpListener monListener = null;
private TcpClient monClient = null;
private int portTCP;
private NetworkStream ns;
private Thread monThread = null;
private byte[] data;
private int recv;
 
public TCPConnexion(int port)
{
this.portTCP = port;
this.monListener = new TcpListener(portTCP);
this.monListener.Start();
 
// Acceptation d'une nouvelle connexion
this.monClient = this.monListener.AcceptTcpClient();
ns = this.monClient.GetStream();
 
//lancement de l'écoute
this.ecouter();
}
 
private void ecouter()
{
try
{
if (monClient.Connected)
{
// Création et lancement d'un nouveau Thread
monThread = new Thread(recupData);
monThread.Start();
}
else
{
MessageBox.Show("Erreur de connexion : port : " + portTCP);
}
}
catch (SocketException ex)
{
MessageBox.Show("Erreur TCPConnexion Port : " + portTCP + " : " + ex.ToString());
}
}
 
private void recupData()
{
while (true)
{
data = new byte[1024];
recv = ns.Read(data, 0, data.Length);
 
if (recv == 0)
{
break;
}
else
{
string resultat = "";
for (int i = 0; i < recv; i++)
{
if (data[i] == 13)
{
// MessageBox.Show(resultat);
Program.monFormulaire.lb_log.BeginInvoke(new GPRSListener.Principale.affichageLog(Program.monFormulaire.log), new object[] { resultat });
resultat = "";
}
else
{
resultat = resultat + Encoding.ASCII.GetString(data, i, 1);
}
}
}
ns.Write(data, 0, recv);
}
}
 
public void Stop()
{
if (monListener != null)
{
monListener.Stop();
}
 
if (monThread != null)
{
monThread.Abort();
}
}
}
}


Le problème vient peut être du Thread ou de delegate, mais je n'arrives pas à résoudre cette erreur
 
Merci de me venir en aide ...
 
Je penses que c'est

Citation :

affichageLog

qui est null mais je suis pas sûr
 
Merci d'avance

Message cité 1 fois
Message édité par skyline86 le 27-02-2009 à 16:08:15
mood
Publicité
Posté le 27-02-2009 à 15:46:04  profilanswer
 

n°1856054
Koyomi
www.sebastiengilles.com
Posté le 27-02-2009 à 15:58:20  profilanswer
 

Laisse moi deviner, humm,
 
Tu est débutant et tu vient du PHP ou du C sans être passer par la case POO. J'ai bon ?

n°1856055
skyline86
Posté le 27-02-2009 à 16:00:36  profilanswer
 

Pourquoi ? Qu'est ce qui te fait dire ça ?

n°1856056
mickom
Posté le 27-02-2009 à 16:01:14  profilanswer
 

Bonjour,
 
Je n'ai pas vraiment le temps de me pencher sur ton code là, mais une petit question : ne peux tu pas debugger ça avec visual studio pour voir précisément quel objet est nul, et l'état de tes autres variables?
ça t'aiderait grandement je pense...

n°1856057
skyline86
Posté le 27-02-2009 à 16:04:47  profilanswer
 

J'ai trouver je décléré pas le delegate dans le bon fichier.

n°1856058
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 27-02-2009 à 16:05:00  profilanswer
 

skyline86 a écrit :

Bonjour, j'ai un message NullReferenceException
sur la ligne

 
Citation :

Program.monFormulaire.lb_log.BeginInvoke(new GPRSListener.Principale.affichageLog(Program.monFormulaire.l­og), new object[] { resultat });



euh, tu le sors d'où ce BeginInvoke() ? [:what has been seen]

 

edit: ah ok, j'imagine que lb_log doit être un Listbox


Message édité par Harkonnen le 27-02-2009 à 16:07:49

---------------
J'ai un string dans l'array (Paris Hilton)

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  [RESOLU] - [C#] - NullReferenceException

 

Sujets relatifs
[RESOLU]Trier liste de fichiersProblème d'accentuation... [résolu]
[RESOLU] Envoi de variable indéfinie en urlProblème de date [résolu]
[résolu]Taille de la zone de texte dans un div ?Projet : C ou Java ? Comment modéliser avec GTK ?
problème #IND et #INF ,C++C/C++ Dossier a espace
[Résolu]Lecture d'un fichier csv[resolu] trier un tableau et faire un fichier xml
Plus de sujets relatifs à : [RESOLU] - [C#] - NullReferenceException


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR