DataView排序不起作用

时间:2018-01-30 22:16:42

标签: c# sorting dataview

我正在尝试在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;

2 个答案:

答案 0 :(得分:0)

你可以试试这个

DataView dv = new DataView(dtSource, "", "SortColumn1,SortColumn2...", DataViewRowState.CurrentRows);

答案 1 :(得分:0)

由于您需要一个特定的列进行排序,请尝试以下方法:
DataView dv = dtSource.FirstOrDefault(); 然后,如果您将检索所有数据,您可以将dv设置为如下列表: DataView dv = dtSource.ToList();