J'ai des codes numériques stockés dans un jeu de données. Lorsque j'essaie de le trier à l'aide de DataView, il trie la colonne par chaîne. Quel est le moyen le plus simple de trier les données comme entier / numéro?
DataView view = dt.DefaultView(); view.Sort = "Code asc"; dt = view.ToTable();
4 Réponses :
Lorsque vous créez une colonne dans la table de données, définissez-la comme typeof (int)
Hmm, dans mon code, j'appelle le WebService qui me renvoie le jeu de données et je fais simplement dttatable dt = staequest.getmasterlist (); code>.
Essayez ce dt.columns ["code"]. DataType = Type.getType ("System.int32");
Voici un exemple de travail. Vous pouvez créer un autre jeu de données via un clone et modifier le type de données de la colonne sur Int et copier les données.
Que se passera-t-il si le code est "001", le type de données passe-t-il à partir de la chaîne en entier omettez-vous les zéros principaux?
Une option consiste à ajouter une colonne calculée avec le type droit et à trier dessus.
Comme ceci: p>
Créer une nouvelle colonne dans DataTable, comme indiqué ci-dessous et trier sur la nouvelle colonne Code_int Dt.columns.add ("code_int", typeof (int16), "convertir (code, 'system.string')"); p>
Bienvenue dans le débordement de la pile! S'il vous plaît envisager de lire les réponses des autres, avant de poster le vôtre. Votre réponse a été mentionnée ici .