Appel fonction dans une autre classe

joe10155 Messages postés 7 Date d'inscription mercredi 29 décembre 2004 Statut Membre Dernière intervention 22 juillet 2006 - 20 juil. 2006 à 09:50
cs_poppyto Messages postés 540 Date d'inscription dimanche 29 décembre 2002 Statut Modérateur Dernière intervention 13 mai 2011 - 22 juil. 2006 à 15:52
Bonjour,

J'ai un problème pour appeler une fonction (déclarée dans une page.aspx) dans une classe déclarée sur une autre page.
Ma fonction n'est pas reconnu dans la classe.

Pour que vous compreniez mieux mon problème, voici la structure de mon site :

j'ai une page param_connexion.aspx avec la fonction select_req qui me permet d'attaquer la base :

<%@ Import Namespace="System.data" %>
<%@ Import Namespace="System.data.SqlClient" %>
<script runat="server" language="vb">
Public function select_req(requete_var)
      Dim mySqlConnection as SqlConnection = new SqlConnection(Application("chaine_connexion")
    Dim mySqlDataAdapter as SqlDataAdapter = new SqlDataAdapter(requete_var, mySqlConnection)
    Dim myDataSet as DataSet = new DataSet()
    mySqlDataAdapter.Fill(myDataSet,"table_requete"
    Dim myDataView as DataView = new DataView(myDataSet.Tables("table_requete"))   
    select_req=myDataView 
end function
</script>

Dans toutes les pages de mon site, j'inclue cette page avec une balise include: cela me permet de faire des requetes sur la base en utilisant directement la fonction select_req (sans avoir à rettaper toutes les lignes de commande pour chaque requete) et cela marche tres bien.

Maintenant, j'ai une autre page qui contient une classe, et à l'intérieur de cette classe, j'ai une fonction qui fait appel à la fonction select_req. Et c'est ici que l'on trouve le probleme, la fonction select_req n'est pas reconnue à l'intérieur de cette classe.

Comment faut il faire pour que ma fonction select_req soit reconnue dans toutes les classes de mon site?
Peut etre y a t il une meilleure methode pour stocker cette fonction select_req autre que dans une simple page aspx?

Je ne sais pas si j'ai été clair. N'hésitez pas à me poser des questions si vous avez besoin d'infos supplémnetaires.

Merci d'avance

3 réponses

cs_poppyto Messages postés 540 Date d'inscription dimanche 29 décembre 2002 Statut Modérateur Dernière intervention 13 mai 2011
21 juil. 2006 à 10:44
Ajoute un répertoire App_Code, et créé un fichier .vb qui contient une classe qui contient méthode statique publique "select_req".
Tu auras accès à la classe dans tout le projet  et donc à la méthode.

Poppyto
0
joe10155 Messages postés 7 Date d'inscription mercredi 29 décembre 2004 Statut Membre Dernière intervention 22 juillet 2006
22 juil. 2006 à 14:43
J'ai essayé de créer un fichier connexion.vb dans un repertroire App_Code avec le code suivant :




Public   static class connexion_class
 
function select_req(requete_var)

 Dim mySqlConnection as SqlConnection = new SqlConnection(Application("chaine_connexion"))

   
    Dim mySqlDataAdapter as SqlDataAdapter = new SqlDataAdapter(requete_var, mySqlConnection)
    Dim myDataSet as DataSet = new DataSet()
    mySqlDataAdapter.Fill(myDataSet,"table_requete")



 ' Create a new dataview instance on the Employees table that was just created
    Dim myDataView as DataView = new DataView(myDataSet.Tables("table_requete"))
   
 select_req=myDataView
 
end function




end class

Mais voici l'erreur qu'il me retourne :

Compiler Error Message: BC30461: Classes cannot be declared 'Static'.

Source Error:

Line 1:  Public   static class connexion_class
Line 2:
Line 3:  Public function select_req(requete_var)






Apparement, je ne peux pas créer de classes static.
Aurais tu une idée?

Merci
0
cs_poppyto Messages postés 540 Date d'inscription dimanche 29 décembre 2002 Statut Modérateur Dernière intervention 13 mai 2011
22 juil. 2006 à 15:52
Déjà c'est la méthode qui doit être statique

Poppyto
0
Rejoignez-nous