2009-09-20 8 views
0

Vous ne savez pas pourquoi j'obtiens cette erreur. Le projet est converti de VS 2005, VS à 2008, mais reste avec 2.0 cadre ..conversion implicite - fortement dactylographié datatable?

image of the error message

Voici l'interface avec mon type générique et contrainte ....

public interface ITableAdapter<DT> where DT:System.Data.DataTable 
    { 
    /// <summary> 
    /// Must be called immediately after instantiation in order to pass objects to TransactionHelper 
    /// </summary> 
    void InitializeTransactionHelper(); 
    int Fill(DT pDataTable); 
    DT GetData(); 
    int Update(System.Data.DataRow[] dataRow 

Voici le tableau de données tel que défini par le concepteur ....

 /// <summary> 
    ///Represents the strongly named DataTable class. 
    ///</summary> 
    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] 
    [global::System.Serializable()] 
    [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] 
    public partial class TGSP_STORAGEPOOLDataTable : global::System.Data.DataTable, global::System.Collections.IEnumerable { 

     private global::System.Data.DataColumn columnSTORAGEPOOLID; 

     private global::System.Data.DataColumn columnPOOLCODE; 

     private global::System.Data.DataColumn columnPOOLDESC; 

Alors qu'est-ce qui a cassé entre 2005 et 2008 ????

Merci, R

+0

Vous n'avez pas de réponse; pouvez-vous faire une distribution directe vers DataTable? Si vous ne pouvez pas le lancer directement (et contourner le compilateur), un autre problème pourrait vous causer des problèmes. Si vous le pouvez, je ne sais pas pourquoi le compilateur vous pose des problèmes. Je ne comprends toujours pas la chose covariance/contravariance avec les génériques ... – Will

Répondre

0

j'ai découvert où ce problème était, mais la messagerie d'erreur qui lui est associée est tout à fait bizarre. Comme il s'est avéré, j'ai eu une classe partielle définie pour le datatable dans un autre fichier. J'ai ensuite utilisé l'attribut de jeu de données N-tier pour déplacer la datatable vers un autre projet. (rappelez-vous ceci est une conversion). Cela a laissé une classe partielle dans un projet avec l'autre moitié dans un autre projet. Lorsque j'ai essayé de recompiler - il a jeté le message "erreur de conversion implicite". Je pense que c'est un bug assez intéressant, et la messagerie qui en est la cause le rend très difficile à comprendre et à corriger. Je ne l'ai trouvé que par hasard, car j'enlève la classe partielle seulement parce qu'elle était vide!

Je n'ai trouvé aucune autre documentation sur ce problème sur le web - alors j'espère que ma réponse est logique et aide quelqu'un d'autre qui se tire les cheveux!

Questions connexes