1

データセットから最小値と最大値を取得したいのですが、これらの値は、パネルにタイトルを表示するためのforループで使用されます

    String sql = "select  title, song_id from up_song where Song_type='Mp3 Tracks' ";
    SqlDataAdapter adpt = new SqlDataAdapter(sql, cn);
    DataSet ds = new DataSet();
    adpt.Fill(ds, "title");

だからここで私は曲IDの最小値と最大値を見つけたいです...ここでmは最大値とk最小値です...私はkとmをどのように選択するのかわかりません...?

        for (i = m; i >= k; --i)
        {
            try
            {
                hp[i] = new HyperLink();
                hp[i].ID = "hp" + i;
                hp[i].Text = ds.Tables["title"].Rows[i].ItemArray[0].ToString();
                hp[i].NavigateUrl = "Downloadpage.aspx";
                hp[i].ForeColor = System.Drawing.Color.White;
                Panel1.Controls.Add(hp[i]);
                Panel1.Controls.Add(new LiteralControl("<br>"));
                HttpCookie coo = new HttpCookie("song");
                coo["sogtit"] = ds.Tables["title"].Rows[i].ItemArray[0].ToString();
                Response.Cookies.Add(coo);
            }
            catch (Exception ex)
            {
                Response.Write(ex.Message);
            }
        }
4

4 に答える 4

1

Linq拡張メソッドを使用すると:

int minSongId = ds.Tables["title"].AsEnumerable()
                  .Min(r => r.Field<int>("song_id"));
int maxSongId = ds.Tables["title"].AsEnumerable()
                  .Max(r => r.Field<int>("song_id"));
于 2013-02-11T11:20:26.603 に答える
1

LINQ を利用する:

 var m = ds.Tables["title"].AsEnumerable().Max(x => x.Field<int>("song_id"));
 var k = ds.Tables["title"].AsEnumerable().Min(x => x.Field<int>("song_id"));

拡張機能を追加System.Data.DataSetExtensionsするには、追加する必要があることを覚えておいてくださいDataSet.AsEnumerable():)

于 2013-02-11T11:20:34.403 に答える
0

これを使ってみてはどうですか?

foreach(DataRow row in ds.Tables["title"].AsEnumerable())
{
    ....
}
于 2013-02-11T11:19:58.337 に答える
0

データセットから MAX 値と MIN 値を取得するには

   var maxTwn = mydataset.Tables[0].AsEnumerable().Max(r =>r["TWN"]);
   var minTwn = mydataset.Tables[0].AsEnumerable().Min(r =>r["TWN"]);
于 2014-09-19T04:25:41.327 に答える