2013-03-25 72 views
0

我想对数据进行排序,但是当我从一个页面跳转到另一个页面时,名称不会被排序。在asp.net中对数据集进行排序c#

return new dao_StudentGroupStudents().GetNewStudentbyGroup(bureauId, search, groupId, currentPage, pageSize, out totalCount); 

    /// <summary> 
    /// Get All the students from that Bureau. 
    /// </summary> 

    public DataSet GetAllStudentGroupByBureau(int? GroupId, int? BureauID) 
    { 
     DataSet ds = new dao_StudentGroup().GetDataSet(null, null, BureauID); 
     ds.Tables[0].DefaultView.Sort = "grouptitle asc"; 
     return ds; 
    } 

我输入了这个,现在我得到无法找到列columnName。

公共数据集GetAllStudentGroupByBureau(INT的GroupId,INT BureauID?) { 的DataSet DS =新dao_StudentGroup()GetDataSet(NULL,NULL,BureauID)。

ds.Tables[0].DefaultView.Sort = "columnName ASC"; 

DataTable dt = ds.Tables[0].DefaultView.ToTable(); 

return ds; 

}

+0

有什么问题吗? – iGanja 2013-03-25 15:32:31

+0

那么,它在第一页上正确排序? – jiiri 2013-03-25 15:36:25

回答

4

试试这个:

DataSet ds = new dao_StudentGroup().GetDataSet(null, null, BureauID); 
ds.Tables[0].DefaultView.Sort = "grouptitle asc"; 
ds.Tables[0] = ds.Tables[0].DefaultView.ToTable(); 
return ds; 

UPDATE

你可以简单地这样做,那么:

public DataSet GetAllStudentGroupByBureau(int ? GroupId, int ? BureauID) 
{ 
    DataSet ds = new dao_StudentGroup().GetDataSet(null, null, BureauID); 

    ds.Tables[0].DefaultView.Sort = "grouptitle asc";   
    DataTable dt = ds.Tables[0].DefaultView.ToTable(); 
    ds.Tables[0].Rows.Clear(); 
    foreach (DataRow row in dt.Rows) 
     ds.Tables[0].Rows.Add(row.ItemArray); 

    return ds; 
} 
+1

ds.Tables [0]产生错误。神秘或索引system.Datadatatablescollection.this [int]无法指定为是只读 – user2208126 2013-03-25 20:01:32

+0

我现在收到此错误错误6'BusinessObjects.StudentGroupManager'未实现接口成员'BusinessObjects.Contracts.IStudentGroupManager.GetAllStudentGroupByBureau(int? ,int?)'。 'BusinessObjects.StudentGroupManager.GetAllStudentGroupByBureau(int?,int?)'无法实现'BusinessObjects.Contracts.IStudentGroupManager.GetAllStudentGroupByBureau(int?,int?)',因为它没有匹配的返回类型'System.Data.DataSet'。 C:\ workspace \ DOP.IT.Training \ Development \ MS \ BusinessObjects \ StudentGroupManager.cs 11 DataObjects – user2208126 2013-03-26 14:17:49

+0

DataTable dt中的第二个“=”给了我一个无效的表达式和ds。给我一个“;预计” – user2208126 2013-03-28 14:02:35

0

你可以试试这个:

//convert DataSet table to DataView 
    DataView dv = ds.Tables[0].DefaultView; 

    //apply the sort 
    dv.Sort = "grouptitle ASC"; 

    //save back into our dataset 
    ds.Tables[0] = dv.ToTable(); 
+0

ds.Tables [0]产生错误。 propat或索引system.Datadatatablescollection.this [int]不能分配给is是只读 – user2208126 2013-03-25 19:53:49

2

您可以尝试以下操作。请记住,您不能将值分配给ds.Table []。因此需要创建一个新的数据表,并将其添加到新的或现有的数据集

ds.Tables[0].DefaultView.Sort = "columnName ASC"; 

    DataTable dt = ds.Tables[0].DefaultView.ToTable(); 
+0

=正在给我一个无效的表达式项 – user2208126 2013-03-26 14:00:35

+0

现在我得到这个错误错误6'BusinessObjects.StudentGroupManager'没有实现接口成员'BusinessObjects .Contracts.IStudentGroupManager.GetAllStudentGroupByBureau(int?,int?)'。 'BusinessObjects.StudentGroupManager.GetAllStudentGroupByBureau(int?,int?)'无法实现'BusinessObjects.Contracts.IStudentGroupManager.GetAllStudentGroupByBureau(int?,int?)',因为它没有匹配的返回类型'System.Data.DataSet'。 C:\工作区\ DOP.IT.Training \开发\ MS \的BusinessObjects \ StudentGroupManager。cs 11 18 BusinessObjects – user2208126 2013-03-26 14:19:58

+0

我能够编译上面的代码,没有任何错误。通过查看上面的代码,似乎还有其他问题正在导致问题。 – Umesh 2013-03-27 01:26:05

0

数据视图的dv = ds.Tables [0] .DefaultView;

dv.Sort = "grouptitle ASC"; 

ds = dv.ToTable(); 

尝试这些

默认它有ds.table [0]无需menstion它