1

私のデータベーステーブルは次のようになります

ここに画像の説明を入力

次のようにCRUDクラスファイルでFileURLを取得しようとしています:

  public IList<string> GetSorted(int listAct)
        {
          IList<Model.story> lstImages = context.stories.ToList();
          return lstImages.Where(c => c.ActivityID == listAct)
                          .Select( a => a.FileURL)
                          .ToList();
        }

私はそれを正しくやっていますか?(これには新しい)

次に、私の aspx で、次のように値を表示しようとします。

 protected void btnSort_Click1(object sender, EventArgs e)
    {
        if (dropListActivity.SelectedIndex > 0)// drop down list
        {
                  string imgList = daoStory.GetSorted(Convert.ToInt32(dropListActivity.SelectedItem.Value)).ToString();

            Response.Write(imgList);

        } 
    }

基本的にドロップダウンリストには activityID 1 または 2 のみが表示され、1 を選択してソートボタンをクリックすると '1' の FileURL が表示され、2 を選択すると '2' の FileURL が表示されます。上記のデータベース テーブル。ただし、 FileURL の代わりにSystem.Collections.Generic.List`1[System.String]が表示されるようになりました。データベース テーブルに記載されているように FileURL を表示したいので、よろしくお願いします。

4

2 に答える 2

2

まず、呼び出しToListにより、すべてのレコードがデータベースから取得されて処理されます。必要なレコードが 1 つだけの場合、これはかなりのリソースの浪費です。DAO メソッドを次のように書くことをお勧めします。

public string GetFileUrl(int actId)
{
    return context.stories.First(c => c.ActivityID == actId).FileURL;
}

そして、次のように使用したいと思います。

protected void btnSort_Click1(object sender, EventArgs e)
{
    if (dropListActivity.SelectedIndex > 0)// drop down list
    {
        var actId = Convert.ToInt32(dropListActivity.SelectedItem.Value);
        var imageUrl = daoStory.GetFileUrl(actId);

        Response.Write(imageUrl);
    } 
}

FileUrlこの方法では、それぞれに 1 つしかないことを前提としていますActivityId。そうでない場合は、DAO コードを簡単に変更して a を返し、代わりにIEnumerable<string>使用できますが、ボタン クリック ハンドラーが結果に対して何をすべきかを理解するのに十分な情報が質問にありません。WhereFirst

于 2013-06-13T02:27:58.773 に答える
0

sort メソッドからリストを返していますが、コード ビハインドで文字列に変換しています。何らかの方法でリストを処理し、必要な要素の値を取得する必要があります。

于 2013-06-13T02:30:09.247 に答える