2016-07-12 1 views
1

Dans mon projet vb, j'ai un formulaire parent mdi pour ouvrir d'autres formulaires. Sur un formulaire, j'ai un DataGridView affichant une table que j'ai faite dans SQL Server. Les données se chargent correctement si je configure la connexion localement (sur le formulaire avec la DGV), mais je dois rendre la connexion globale pour la garder plus simple et l'arrêter constamment en ouvrant/fermant la même connexion. J'ai ajouté le code à la forme mdi, comme ci-dessous.Création d'une connexion de base de données globale sur un formulaire mdi

Public Class mdi1 

Dim con As inifile = New inifile() 
Dim constr = con.readconnectionstring() 

je l'ai déjà ajouté le code Imports System.Data.OleDb, alors pourquoi dois-je obtenir l'erreur suivante lors de la compilation du code?

constr is not declared, it may be inaccessible due to its protection level 

Cette erreur est dans mon sous-programme Form1_Load (où la connexion a été à l'origine étant réglé pour charger les données au DGV)

+1

Vous utilisez OleDB pour accéder à SQL Server (tag)? – Plutonix

+0

@Plutonix oui je suis, j'ai essayé d'utiliser SqlClient mais mon professeur a dit d'utiliser OleDb, mais les deux ont fonctionné de toute façon –

Répondre

1

Comme vous semblez être un débutant, je vais essayer de vous dire comment obtenir ce travail, plutôt que la meilleure pratique.

vous assurer que votre constr est accessible de partout en définissant dans votre formulaire MDI comme Public:

Public constr = con.readconnectionstring() 

Vous pouvez maintenant accéder à ce n'importe où en utilisant le nom complet de la variable:

mdi1.constr 

meilleur pratique serait probablement de stocker cela dans sa propre classe "DataAccess" plutôt que le formulaire MDI

+0

Salut, tout a fonctionné et s'est débarrassé de l'erreur que j'avais initialement, cependant, maintenant dans ma déclaration SQL qui est utilisé pour afficher les données, je reçois une nouvelle erreur, que je vais poster dans la question originale. –

+1

Non - veuillez commencer une nouvelle question si vous avez une nouvelle erreur –