10

foldername、という名前の列を持つデータテーブルがありますdocumentname。以下のようなデータ:

FolderName  DocumentName
Folder1     HR[D] Document
Folder1     ___----'
Folder1     Asp_example.pdf
Folder2     SD
Folder3     Heavy_weight
Folder3     Accesorial Services

alphabeticallyの FolderName に基づいて DocumentNameを並べ替える方法.Net Framework 2.0

私たちが試した解決策は以下のとおりですが、1200000 を超えるレコードが含まれているため、時間がかかりすぎます。

int counter=0;

while (counter < searchDT.Rows.Count){
   string FolderName = Convert.ToString(searchDT.Rows[counter]["Folder Name"]);

   string exp = "[Folder Name] like '" + FolderName + "'";

   if (FolderName.Contains("%") || FolderName.Contains("_") || FolderName.Contains("[]") ||      FolderName.Contains("'"))

      exp = "[Folder Name] like '" + EscapeLikeValue(FolderName) + "'";

   string sortExpression = "[Document Name] ASC";

   DataRow[] drfoldername = searchDT.Select(exp, sortExpression);

   foreach (DataRow row in drfoldername)
     drfoldernameDT.ImportRow(row);

   counter += drfoldername.Length;

 }
4

5 に答える 5

41
DataTable dt = new DataTable();

DataView dv = new DataView(dt);
dv.Sort = "FolderName, DocumentName ASC";

それを試してみてください。最初に をソートしFolderName、次にをソートしますDocumentName

それを画面上のコンポーネントに送信する必要がある場合は、DataTable.

于 2012-12-27T09:29:33.450 に答える
2

DataView.Sort を試しましたか?

dt.DefaultView.RowFilter = "FolderName , DocumentName ASC";
dt = dt.DefaultView.ToTable();
于 2012-12-27T09:28:50.240 に答える
0

データテーブルを使用して dgv をバインドしている場合は、次のような do を使用できます。

DataTable dtable = (データテーブル) dgv.DataSource; dtable.DefaultView.Sort =

または、これを確認してください:

http://www.codeproject.com/csharp/datagridsort.asp

ありがとう

于 2012-12-27T11:21:00.133 に答える