我正在尝试在C#中对DataView进行排序。但它不适用于专栏“ArtNr。”。我还尝试对列“Menge”,“Einzelpreis”和“Preis”进行排序,并且它有效。但我无法对第一列进行排序。在列中只有int值。
这是我的代码:
foreach (DataGridViewRow row in dataGridView2.Rows)
{
DataRow row1;
row1 = dtSource.NewRow();
row1["ArtNr."] = row.Cells[2].Value.ToString();
row1["Bezeichung"] = row.Cells[3].Value.ToString();
row1["Menge"] = row.Cells[1].Value.ToString();
row1["Einzelpreis"] = row.Cells[4].Value.ToString();
row1["Preis"] = (Convert.ToDecimal(row.Cells[1].Value) * Convert.ToDecimal(row.Cells[4].Value)).ToString();
dtSource.Rows.Add(row1);
}
DataView dv = dtSource.DefaultView;
//dv.Sort = "ArtNr. DESC"; -> does not work
dv.Sort = dv.Table.Columns[0].ColumnName + " ASC"; //does not work
DataTable sortedDT = dv.ToTable();
return sortedDT;
答案 0 :(得分:0)
你可以试试这个
DataView dv = new DataView(dtSource, "", "SortColumn1,SortColumn2...", DataViewRowState.CurrentRows);
答案 1 :(得分:0)
由于您需要一个特定的列进行排序,请尝试以下方法:
DataView dv = dtSource.FirstOrDefault();
然后,如果您将检索所有数据,您可以将dv设置为如下列表:
DataView dv = dtSource.ToList();