Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C使用接口对数据表的行进行排序_C#_Sorting_Interface_Datatable - Fatal编程技术网

C# C使用接口对数据表的行进行排序

C# C使用接口对数据表的行进行排序,c#,sorting,interface,datatable,C#,Sorting,Interface,Datatable,这是我如何从数据库中获取数据并将其添加到名为data的DataTable中的代码, 我必须越来越多地使用接口按Spelionu skaicius行的数据对这个表进行排序,但我不知道如何实现这一点,有人能帮我吗? 我知道有很多方法可以对其进行排序,但我必须使用接口进行排序 using (FbConnection fbBD = new FbConnection(csb.ToString())) { fbBD.Open(); FbTransaction transact = fbBD.

这是我如何从数据库中获取数据并将其添加到名为data的DataTable中的代码, 我必须越来越多地使用接口按Spelionu skaicius行的数据对这个表进行排序,但我不知道如何实现这一点,有人能帮我吗? 我知道有很多方法可以对其进行排序,但我必须使用接口进行排序

using (FbConnection fbBD = new FbConnection(csb.ToString()))
{
    fbBD.Open();
    FbTransaction transact = fbBD.BeginTransaction();
    FbCommand sqlReq =
        new FbCommand("SELECT vardas,pavarde,sp_skaicius,spelioniu_sk FROM zaidejai WHERE atspetas='Taip'", fbBD, transact);
    using (FbDataReader r = sqlReq.ExecuteReader())
    {
        while (r.Read())
        {
            DataRow rw = dt.NewRow();
            rw["Vardas"] = r.GetString(0);
            rw["Pavarde"] = r.GetString(1);
            rw["Skaicius"] = r.GetValue(2);
            rw["Spelionu skaicius"] = r.GetValue(3);
            data.Rows.Add(rw);
        }
    }
    transact.Commit();
    fbBD.Close();
}

请注意,我的英语很抱歉

请使用datatable DefaultView属性:

data.DefaultView.Sort = "Spelionu skaicius";
然后,您可以使用data.DefaultView查看dataview,或者如果需要datatable,可以执行以下操作:

data = data.DefaultView.ToTable();

以上内容用于常规排序。如果要使用IComparable,则必须使用自定义类别而不是DataTable。”这是一种解释。

最好让数据库对数据进行排序,因此,我会将您的选择更改为:

    SELECT vardas,pavarde,sp_skaicius,spelioniu_sk 
    FROM zaidejai 
    WHERE atspetas='Taip'
    ORDER BY spelioniu_sk
请注意,我使用了spelioniu_sk,因为它是select上列出的第4列,然后在datatable定义中映射到Spelionu skaicius

如果在从数据库中获取数据后仍必须对数据表进行排序,可能顺序不同,则可以使用数据表的DataView属性,如下所示:

data= data.DefaultView.Sort = "`Spelionu skaicius` ASC";

取决于您需要排序的顺序


注意:我不确定上面的排序表达式是否可以正常工作。既然你决定用中间的一个空格命名你的列,你可能需要像上面那样把后缀引文中的2个字括起来,或者也许是方括号[Speliu SkaSiuS] ASC < /P>不能在SQL查询中用SPELIIIUUSK ASC添加顺序吗?看起来你只是得到了这个字段的值,为什么不让查询来帮你呢?你所说的接口是什么意思?使用接口,例如IComperableFirst,我使用data.DefaultView.Sort=Spelionu skaicius;它从我需要的最大到最小排序。此外,我被要求使用Interface对其进行排序。要颠倒顺序,请使用[Spelion uskaicius]DESC。现在,关于IComparable,为什么需要这个?你真的有特殊的分类规则吗?
data = data.DefaultView.Sort = "`Spelionu skaicius` DESC";