2017-10-10 8 views
0

Je suis nouveau dans C# et linq et je dois remplir un ObjectDataSource (dans vb.net) avec du code en utilisant une classe dans un autre projet (en .C#).remplir la source de données d'objet avec la classe dans un autre projet

J'ai essayé de faire ces choses:
1. Ajouter la référence
2. "Les importations Projet2" dans le code behind.
3. Remplir en cas de charge:

Dim ObjectClass1 As New Class1(ConnectionString) 

myODS.TypeName = "ObjectClass1" 
myODS.SelectMethod = "GetData" 
myODS.SelectParameters("Filter1Name") = New Parameter("Filter1Name", DbType.String, "xxx") 
  1. La classe dans l'autre projet ressemble à ceci:

    public class Class1 
        { 
        public string ConnectionString { get; } 
    
        public Class1(string connectionString) 
        { 
         ConnectionString = connectionString; 
        } 
    
        public IQueryable<MyObject> GetData(string Filter1Name) 
         { 
         using (MyObjectDataContext dataContext = new MyObjectDataContext(ConnectionString)) 
          { 
          var Result = dataContext.MyObject.Where(x => x.FILTER_1== Filter1Name).Select(x => new MyObject 
            { 
            Field1 = x.FIELD_1, 
            Field2 = x.FIELD_2 
            }); 
          return Result; 
          } 
         } 
        } 
    

Et c'est l'erreur que j'obtiens: ObjectDataSource 'myODS' n'a pas pu trouver une méthode non générique 'GetData' qui a des paramètres: Filter1Name

Qu'est-ce que cette erreur signifie? Est-il possible de faire ce que j'essaie de faire?

+0

À quoi appartient 'GetInfo' &' ObjectClass1'? Soit vous utilisez un nom de type incorrect, sélectionnez un nom de méthode ou des arguments invalides pour 'GetInfo'. –

+0

Désolé, j'ai fait une erreur quand j'ai écrit la question ici ... GetInfo is GetData (La méthode dans la classe Class1). Et à propos de la variable ObjectClass1 .... est l'instance de Class1 dans la page. – Melipao

Répondre

0

Cela signifie qu'il ne peut pas trouver une méthode sur votre classe appelée GetInfo() En regardant votre définition de classe 1, vous avez probablement voulu dire pour le rendre GetData

Dim ObjectClass1 As New Class1 (ConnectionString)

myODS.TypeName = "ObjectClass1" 
myODS.SelectMethod = "GetData" 
myODS.SelectParameters("Filter1Name") = New Parameter("Filter1Name", DbType.String, "xxx")