我有一个数据表,其中包含名为foldername
,documentname
的列。数据如下:
FolderName DocumentName
Folder1 HR[D] Document
Folder1 ___----'
Folder1 Asp_example.pdf
Folder2 SD
Folder3 Heavy_weight
Folder3 Accesorial Services
如何alphabetically
根据.Net Framework 2.0
中的FolderName对DocumentName进行排序。
我们尝试过的解决方案如下,但由于包含超过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;
}
答案 0 :(得分:38)
DataTable dt= new DataTable();
DataView dv = new DataView(dt);
dv.Sort = "FolderName, DocumentName ASC";
尝试一下。它将首先对FolderName进行排序,然后对DocumentName进行排序。
如果您需要将其发送到屏幕中的组件,您可以像使用DataTable一样。
答案 1 :(得分:2)
你试过DataView.Sort吗?
dt.DefaultView.RowFilter = "FolderName , DocumentName ASC";
dt = dt.DefaultView.ToTable();
答案 2 :(得分:2)
以下是我解决这个问题的方法:
Datatable FI = new Datatable();
DataView viewFI = new DataView(FI);
viewFI.Sort = "ServiceDate, ServiceRoute";
DataTable OFI= viewFI.ToTable();
答案 3 :(得分:0)
如果使用数据表绑定dgv,可以使用以下操作:
DataTable dtable =(DataTable)dgv.DataSource; dtable.DefaultView.Sort =
或者检查一下:
http://www.codeproject.com/csharp/datagridsort.asp
谢谢
答案 4 :(得分:0)
您可以使用
oDataSet.Tables[0].DefaultView.Sort = "Column1 ASC ";