1

「動画」テーブルから最新の動画を選択したい。PostgreSql Db と Npgsql データ プロバイダーを使用しています。私のアプリはAsp.netにあります。

ユーザー ID はリスト - userid_list にあります。リストにある人物の ID に関係なく、その人物の動画のみを並べ替える必要があります。

クエリによって返されたすべてのレコードを「videos_list」というリストに保存しています。

問題は、動画がユーザー ID で並べ替えられていることです。つまり、動画は 1 つの ID の降順に並べ替えられ、次の 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));

            }
     }

どんな助けでも大歓迎です。

4

1 に答える 1

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. 結果を (任意の順序で) 1 つの大きなリストに追加し、時間の降順で並べ替えます。
于 2012-12-20T11:16:14.417 に答える