2012-08-13 7 views
0

J'écris petite application WM 6.1 qui lire et écrire au format XML, mais je reçois l'exception suivante:Windows Mobile 6 System.PlatformNotSupportedException

System.PlatformNotSupportedException was unhandled 
    Message="PlatformNotSupportedException" 
    StackTrace: 
     at System.Globalization.CompareInfo..ctor(Int32 culture) 
     at System.Globalization.CompareInfo.GetCompareInfo(Int32 culture) 
     at System.Globalization.CultureInfo.get_CompareInfo() 
     at System.CultureAwareComparer..ctor(CultureInfo culture, Boolean ignoreCase) 
     at System.StringComparer.Create(CultureInfo culture, Boolean ignoreCase) 
     at System.Data.DataTable.GetSpecialHashCode(String name) 
     at System.Data.DataColumnCollection.RegisterColumnName(String name, DataColumn column, DataTable table) 
     at System.Data.DataColumnCollection.BaseAdd(DataColumn column) 
     at System.Data.DataColumnCollection.AddAt(Int32 index, DataColumn column) 
     at System.Data.DataColumnCollection.Add(DataColumn column) 
     at System.Data.DataColumnCollection.Add(String columnName, Type type) 
     at MyApp.Settings.CreateDT(String Setting, String Key, String Value) 
     at MyApp.Program.Main() 

ici est la méthode CreatDT Body:

public static DataTable CreateDT(string Setting, string Key, string Value) 
     { 
      DataTable dt; 
      dt = new DataTable(Setting); 
      dt.Columns.Add("Key", Type.GetType("System.String")); //<-- error here 
      dt.Columns.Add("Value", Type.GetType("System.String")); 
      AddRow(ref dt, Key, Value); 
      return dt; 
     } 

tout organisme Aidez-moi? Si c'est PlatformNotSupportedException, alors le problème dépend d'une fonctionnalité qui n'existe pas dans votre système.

+0

essayez de remplacer 'Type.GetType (" System.String ")' par 'typeof (string)' (je n'ai aucun moyen de tester votre code, je devine juste). – Alex

+0

'typeof (string)' ne fonctionne pas aussi – someone

+0

@PawelZ cette option a déjà été cochée – someone

Répondre

0

Il y a probablement des composants de Compact Framework manquants.

Vous pouvez essayer de sélectionner (malheureusement, il est désélectionné sur l'image) option ci-dessous et voir si cela aide.

enter image description here

0

Que Type.GetType("System.String") ou ne vous cause pas des erreurs, je recommanderais d'aller avec la suggestion d'Alex typeof(String) dans les commentaires. Cela dit, essayez de placer un bloc try ... catch temporaire autour de la routine problématique pour obtenir un message d'erreur plus détaillé.

public static DataTable CreateDT(string Setting, string Key, string Value) 
{ 
    DataTable dt = new DataTable(Setting); 
    try { 
    dt.Columns.Add("Key", typeof(String)); //<-- error here 
    dt.Columns.Add("Value", typeof("String")); 
    AddRow(ref dt, Key, Value); 
    } catch (Exception err) { 
    MessageBox.Show(err.Message); 
    if (err.InnerException != null) { 
     MessageBox.Show(err.InnerException.Message); 
    } 
    } 
    return dt; 
} 

Qui sait? "Clé" pourrait être un mot réservé. Vous devrez peut-être aller avec autre chose, comme "ID".

EDIT: Je viens de remarquer que vous fournissez un nom pour votre DataTable: Réglage. S'il s'agit d'une valeur de nom non autorisée (comme "Paramètres: $ 95" $ 110 "), votre table peut ne jamais être créée.