vid*_*gar 137 c# sorting datatable
我们在a中有两列DataTable
,如下所示:
COL1 COL2
Abc 5
Def 8
Ghi 3
Run Code Online (Sandbox Code Playgroud)
我们正在尝试这一排序datatable
基于COL2
按递减顺序.
COL1 COL2
ghi 8
abc 4
def 3
jkl 1
Run Code Online (Sandbox Code Playgroud)
我们试过这个:
ft.DefaultView.Sort = "COL2 desc";
ft = ft.DefaultView.ToTable(true);
Run Code Online (Sandbox Code Playgroud)
但是,不使用a DataView
,我们想要对DataTable
自己进行排序,而不是DataView
.
Jay*_*ggs 335
我担心你不能像你想要的那样轻松地进行就地排序的DataTable.
您可以做的是从您从原始DataTable创建的DataView创建一个新的DataTable.在DataView上应用您想要的任何排序和/或过滤器,然后使用DataView.ToTable方法从DataView创建新的DataTable :
DataView dv = ft.DefaultView;
dv.Sort = "occr desc";
DataTable sortedDT = dv.ToTable();
Run Code Online (Sandbox Code Playgroud)
Ank*_*tix 30
这会对你有所帮助......
DataTable dt = new DataTable();
dt.DefaultView.Sort = "Column_name desc";
dt = dt.DefaultView.ToTable();
Run Code Online (Sandbox Code Playgroud)
Abd*_*dul 22
简单使用.选择功能.
DataRow[] foundRows=table.Select("Date = '1/31/1979' or OrderID = 2", "CompanyName ASC");
DataTable dt = foundRows.CopyToDataTable();
Run Code Online (Sandbox Code Playgroud)
它已经完成......快乐编码
Vis*_*hnu 20
也许以下内容可以帮助:
DataRow[] dataRows = table.Select().OrderBy(u => u["EmailId"]).ToArray();
Run Code Online (Sandbox Code Playgroud)
在这里,您也可以使用其他Lambda表达式查询.
Gus*_*ori 13
或者,如果你可以使用DataGridView
,你可以打电话Sort(column, direction)
:
namespace Sorter
{
using System;
using System.ComponentModel;
using System.Windows.Forms;
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
this.dataGridView1.Rows.Add("Abc", 5);
this.dataGridView1.Rows.Add("Def", 8);
this.dataGridView1.Rows.Add("Ghi", 3);
this.dataGridView1.Sort(this.dataGridView1.Columns[1],
ListSortDirection.Ascending);
}
}
}
Run Code Online (Sandbox Code Playgroud)
哪个会给你想要的结果:
小智 9
table.DefaultView.Sort = "[occr] DESC";
Run Code Online (Sandbox Code Playgroud)
小智 6
使用 LINQ - C# 之美
DataTable newDataTable = baseTable.AsEnumerable()
.OrderBy(r=> r.Field<int>("ColumnName"))
.CopyToDataTable();
Run Code Online (Sandbox Code Playgroud)
排序数据有两种方式
1)仅对数据进行排序并填充到网格中:
DataGridView datagridview1 = new DataGridView(); // for show data
DataTable dt1 = new DataTable(); // have data
DataTable dt2 = new DataTable(); // temp data table
DataRow[] dra = dt1.Select("", "ID DESC");
if (dra.Length > 0)
dt2 = dra.CopyToDataTable();
datagridview1.DataSource = dt2;
Run Code Online (Sandbox Code Playgroud)
2)排序默认视图,类似于带有网格列标题的排序:
DataGridView datagridview1 = new DataGridView(); // for show data
DataTable dt1 = new DataTable(); // have data
dt1.DefaultView.Sort = "ID DESC";
datagridview1.DataSource = dt1;
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
444635 次 |
最近记录: |