2012-12-20 71 views
1

我想從「視頻」表中選擇最新的視頻。我正在使用PostgreSql Db和Npgsql數據提供程序。我的應用程序在Asp.net中。根據postgresql中的asp.net中的日期時間對記錄進行排序DB

userids在List - userid_list中。無論哪個人的身份在列表中,只有他們的視頻需要排序。

我在名爲「videos_list」的列表中存儲查詢返回的所有記錄。

問題是,視頻按照用戶標籤進行排序,即視頻是按照一個id的順序排列,然後是下一個等,但我不希望這樣。我想爲這些ID檢索所有視頻,然後一次對所有內容進行排序。

string query3 = "Select * from \"Videos\" where \"User_ID\" = :user_id Order by \"DateTimeUploaded\" desc"; 

    NpgsqlCommand cmd3 = new NpgsqlCommand(query3, con); 


    for (int j = 0; j < userid_list.Count; j++) 
    { 
      cmd3.Parameters.AddWithValue("user_id", userid_list[j]); 
      reader2 = cmd3.ExecuteReader(); 

      while (reader2.Read()) 
      { 
       string Description = reader2.GetString(reader2.GetOrdinal("Description")); 

       DateTime DateTimeUploaded = reader2.GetDateTime(reader2.GetOrdinal("DateTimeUploaded")); 

       videos_list.Add(new VideosJson(Description, Transcript, ThumbnailUrl, VideoUrl, DateTimeUploaded)); 

      } 
    } 

任何幫助,將不勝感激。

回答

0

您已經設計了它,以便您循環瀏覽用戶並按降序檢索視頻,然後將它們作爲一個組添加到列表中。

User 1 
    Video 3 
    Video 2 
    Video 1 

User 2 
    Video 6 
    Video 5 
    Video 4 

你應該做以下

  1. 一個修改你的SQL命令來一次過濾所有用戶(即"User_ID" = A or "User_ID" = B ...然後才能通過的時間。
  2. 添加您的結果(以任意順序)到一個大名單然後按降序排序它,雖然這是不太親切。
+0

thnx @ Jimmy ..你的解釋使它非常簡單瞭解發生了什麼。這將是一個gr8的幫助,如果你能告訴我怎麼做你要求我做什麼.. :) – Namrata

+0

想通了...主要的概率是bcoz我存儲在列表中的ID ....需要使用Inner Join! Inner加入了2張桌子2獲取用戶標識,然後再次加入,以便按desc順序獲取帶有這些標識的視頻.. – Namrata

相關問題