Garder connexion bd sur mdichild

Résolu
cs_lowkey Messages postés 260 Date d'inscription jeudi 31 mai 2007 Statut Membre Dernière intervention 5 novembre 2010 - 31 août 2007 à 03:35
cs_lowkey Messages postés 260 Date d'inscription jeudi 31 mai 2007 Statut Membre Dernière intervention 5 novembre 2010 - 31 août 2007 à 16:07
Bonjour!!

Je débute en C#, et il y a quelque chose que je ne comprend pas.

J'ai une Form MDIcontainer dans laquel j'ouvre une connexion à une base de données :



public



partial



class



index
:

Form

{
   public

connexion
cnx;

   

public
index()
   {InitializeComponent();}




   private



void
index_Load(

object
sender,

EventArgs
e)  
   {


      Form
childForm =

new



accueil
();
      childForm.MdiParent =

this
;


      childForm.Show();
      cnx =

new



connexion
();
      cnx.Open();
      }
}

voici ma classe connexion :





class



connexion

{
   

private



OleDbConnection
Ocnx;




   public



void
Open()
   {
      

try
      
{
         Ocnx =

new



OleDbConnection
();
         Ocnx.ConnectionString =

"Provider=microsoft.jet.oledb.4.0;Data Source=../../../base/gestion.mdb;"
;
         Ocnx.Open();
      

}
      

catch
      
{

index
.ActiveForm.Close();
      }
   }
}

Comme vous avez pu constater, j'ouvre une mdiChild nommée accueil.

Ma question est : comment se fait-il que je n'ai pas accésà la propriété cnx dans la mdiChild?
C'est la premiere fois que je fais une connexion à un bd en c# et je ne comprend pas encore tout...

Si quelqu'un pouvait m'aiguiller, ce serait simpa!!

lowkey

5 réponses

MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
31 août 2007 à 08:32
Salut,

L'instance de cnx appartient a ta Form.
Pour faire simple, ouvre ta connexion dans ta MdiChild, ou alors passe lui l'instance de cnx en paramètre.

Mx
MVP C# 
3
Nikoui Messages postés 794 Date d'inscription vendredi 24 septembre 2004 Statut Membre Dernière intervention 19 août 2008 13
31 août 2007 à 13:04
Déclare ta classe "connection" comme étant public ou internal selon le cas (internal si accueil et connection sont dans le même projet, public sinon).

Sinon, en générale les nom de classes commencent par des majuscules (même si dans les conventions de codages y'a souvent plusieurs écoles qui s'affrontent, ce point là fait souvent l'unanimité...)

<hr size="2" width="100%" />
Working as designed
www.nikoui.fr
3
cs_lowkey Messages postés 260 Date d'inscription jeudi 31 mai 2007 Statut Membre Dernière intervention 5 novembre 2010 1
31 août 2007 à 11:32
Merci Morpion!!
0
cs_lowkey Messages postés 260 Date d'inscription jeudi 31 mai 2007 Statut Membre Dernière intervention 5 novembre 2010 1
31 août 2007 à 13:00
Après avoir suivi ton conseil, un autre problème se pose :

Erreur 1 Accessibilité incohérente : le type de paramètre 'programme.connexion' est moins accessible que la méthode 'programme.accueil.accueil(programme.connexion)'

public

partial
class
accueil :
Form
{
   
private
connexion cnx;

   
public accueil(
connexion vcnx)
   {
      
this.cnx = vcnx;
      InitializeComponent();
   }

}

et

public
partial
class
index :
Form
{
   
private
connexion cnx;

   
public index()
   {InitializeComponent();}

   private
void index_Load(
object sender,
EventArgs e)
   {
      
this.cnx =
new
connexion();
      
this.cnx.Open();
      
Form childForm =
new
accueil(
this.cnx);
      childForm.MdiParent =
this;
      childForm.WindowState =
FormWindowState.Maximized;
      childForm.Show();
      childForm.BringToFront();
   }
}

Héhé, j'adore le c#  (et je regrette de pas avoir mieux suivi mes cours de dev objet...)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_lowkey Messages postés 260 Date d'inscription jeudi 31 mai 2007 Statut Membre Dernière intervention 5 novembre 2010 1
31 août 2007 à 16:07
Merci nikoui!!
0
Rejoignez-nous