8
votes

Trier les éléments de chaîne dans un jeu de données comme INT à l'aide de C #

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();


0 commentaires

4 Réponses :


2
votes

Lorsque vous créez une colonne dans la table de données, définissez-la comme typeof (int) xxx


2 commentaires

Hmm, dans mon code, j'appelle le WebService qui me renvoie le jeu de données et je fais simplement dttatable dt = staequest.getmasterlist (); .


Essayez ce dt.columns ["code"]. DataType = Type.getType ("System.int32");



11
votes

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. xxx


1 commentaires

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?



3
votes

Une option consiste à ajouter une colonne calculée avec le type droit et à trier dessus.

Comme ceci: xxx


0 commentaires

0
votes

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')");


1 commentaires

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 .