如何根据日期/时间列以降序显示合并表(表数)数据?
根据此代码,我有一个名为'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主页)。
答案 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);
虽然这不是你的问题,但我的建议是不要为每个用户提供一张表。我知道大多数人不会来这里寻求建议,而是直接回答,但在这种情况下,我恐怕不得不说些什么。