-1
    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");
    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"));
 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);
            }
        }
    }

ここで私は1つのエラーで立ち往生し、エラーは次のとおりです:

9 位には行がありません。8 位には行がありません。7 位には行がありません。

コードの問題は何ですか?

私はDBから値にアクセスできません。別の解決策は何ですか?

4

1 に答える 1

0

DB に SongId 3,4,5,6,7,8,9 がある場合

m is 9

k is 3

ただし、DataTable には 7 行 (0 ~ 6) しかありません。次に、id を行インデックスとして使用してそれらにアクセスすることはできません。

于 2013-02-11T13:19:16.373 に答える