2017-03-10 5 views
0

DataTableの各行から特定の列を取得する方法を教えてください。この例では、トップ3のニュースを取得したいと思い、Imageに問題があります。このコードは、私がdr.Rows [0] ["Image"]を定義しているので、最初の行のイメージを常に提供します。どのように私はすべての行のための右のイメージを取得するこれを変更することができますか?DataTableの特定の列foreach行を取得する

SqlCommand cmd = new SqlCommand("SELECT TOP 3 Title, Content, Date, Autor, Category, Image FROM News", con); 
    con.Open(); 
    SqlDataAdapter da = new SqlDataAdapter(cmd); 
    da.Fill(dt); 

    foreach (DataRow row in dt.Rows) 
    { 
     Panel panel = new Panel(); 
     panel.Attributes.Add("class", "post"); 

     HtmlGenericControl header = new HtmlGenericControl("h2"); 
     header.InnerHtml = row["Title"].ToString(); 
     header.Attributes.Add("class", "naslovPosta"); 
     panel.Controls.Add(header); 

     HtmlGenericControl date = new HtmlGenericControl("p"); 
     date.InnerHtml = ((DateTime)row["Date"]).ToString("dd.MM.yyyy."); 
     date.Attributes.Add("class", "datumPosta"); 
     panel.Controls.Add(date); 

     Image img1 = new Image(); 
     img1.ImageUrl = ResolveUrl("~/Images/" + dt.Rows[0]["Image"]); 
     panel.Controls.Add(img1); 

     HtmlGenericControl content = new HtmlGenericControl("pre"); 
     content.InnerHtml = row["Content"].ToString(); 
     panel.Controls.Add(content); 

     pnlNews.Controls.Add(panel); 
    } 

答えて

0

あなたはすでにあなたが-variable rowで現在の行を見つけ、すべての行を列挙するので、交換してください:

img1.ImageUrl = ResolveUrl("~/Images/" + dt.Rows[0]["Image"]); 

img1.ImageUrl = ResolveUrl("~/Images/" + row["Image"]); 

とあなたはそれがすでにf.e.行ったようにrow["Title"].ToString();

関連する問題