如何根据日期/时间列以降序显示合并表(表的数量)数据?

时间:2014-01-02 07:33:21

标签: c# asp.net dataset

如何根据日期/时间列以降序显示合并表(表数)数据?

根据此代码,我有一个名为'Friend'的表。

SqlDataAdapter getnewsfeeds;
SqlDataAdapter friendadapter = new SqlDataAdapter("select * from " + Session["username"].ToString() + "_friends ", friendsconnection);
friendadapter.Fill(friendsdataset);
int friendrowcount = friendsdataset.Tables[0].Rows.Count;
if (friendrowcount > 0)
{
      getnewsfeeds = new SqlDataAdapter("select * from " + Session["username"].ToString() + "_newsfeeds ", con);
      getnewsfeeds.Fill(ds2);
      for (int i = 0; i < friendrowcount; i++)
      {
          friendstringtable = " " + friendsdataset.Tables[0].Rows[i]["friendsusername"].ToString() + "_newsfeeds ";
          getnewsfeeds = new SqlDataAdapter("select * from " + friendstringtable + "", con);
          getnewsfeeds.Fill(ds2);
      }

}
ds2.Tables[0].DefaultView.Sort = "time_date desc";

合并表的数据正在显示,但未按日期/时间降序显示。 (例如Facebook主页)。

1 个答案:

答案 0 :(得分:2)

我认为你不能就地做到这一点,你需要创建一个新的DataTable

DataView dv = ds2.Tables[0].DefaultView;
dv.Sort = "time_date desc";
DataTable sorted = dv.ToTable();

Here是一个很好的参考。

话虽如此,在您的SQL查询中执行此操作会不会更好/更容易/更快?

getnewsfeeds = new SqlDataAdapter(
   "select * from " + friendstringtable + " order by time_date desc", con);

虽然这不是你的问题,但我的建议是不要为每个用户提供一张表。我知道大多数人不会来这里寻求建议,而是直接回答,但在这种情况下,我恐怕不得不说些什么。