2010-06-15 8 views
0

Je les suivantestri dataview ne se passe pas correctement (C# 3.0)

DataTable dt = new DataTable(); 
      dt.Columns.Add("col1", typeof(string)); 
      dt.Columns.Add("col2", typeof(string)); 

      dt.Rows.Add("1", "r1"); 
      dt.Rows.Add("1", "r2"); 
      dt.Rows.Add("1", "r3"); 
      dt.Rows.Add("1", "r4"); 

      dt.Rows.Add("2", "r1"); 
      dt.Rows.Add("2", "r2"); 
      dt.Rows.Add("2", "r3"); 
      dt.Rows.Add("2", "r4"); 

      dt.Rows.Add("3", "r1"); 
      dt.Rows.Add("3", "r2"); 
      dt.Rows.Add("3", "r3"); 
      dt.Rows.Add("3", "r4"); 

      dt.Rows.Add("1", "r1"); 
      dt.Rows.Add("1", "r2"); 

      DataView dv = new DataView(dt); 
      dv.Sort = "col1"; 

      DataTable dResult = dv.Table; 

Je suis en train de trier datatable avec l'aide de dataview afin que le résultat sera

1 r1 
1 r2 
... 

2 r1 
2 r2 
... 

3 r1 
3 r2 
...... 

Signifie tous les 1 premiers suivis des 2 et 3

Même j'ai essayé avec dt.DefaultView.Sort = "col1"; mais pas de chance.

Mais ce n'est pas le cas. Seul le résultat que je suis en mesure d'afficher dans dv.Sort et non le datatable (dResult)

J'utilise C# 3.0.

S'il vous plaît aider

Merci

Répondre

1

Modifier le type de la colonne 'col1' int * au lieu de chaîne.

Entrez ensuite ces valeurs comme entiers à la place.


-Edit

Oui, cela ne fonctionne pas. Dv.Table renvoie la table source et non les données triées.

Utilisez ceci pour obtenir les données triées.

DataTable dResult = dv.ToTable(); 
+0

désolé .. ne fonctionne pas .. et aussi je ne peux pas Chenge le type de données .. Il est juste un échantillon de données d'origine où provient de fichier Excel – Newbie

Questions connexes