【问题标题】:Get specific column foreach row in DataTable获取 DataTable 中每一行的特定列
【发布时间】:2017-03-10 11:28:14
【问题描述】:

如何从 DataTable 中的每一行获取特定列。在这个例子中,我想获得前 3 条新闻,但我遇到了 Image 问题。这段代码总是给出第一行的图像,因为我定义了 dr.Rows[0]["Image"]。我怎样才能改变它以获得每一行的正确图像?

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

【问题讨论】:

    标签: asp.net datatable webforms row


    【解决方案1】:

    你已经枚举了所有行,你在row-变量中找到当前行,所以替换:

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

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

    就像你已经做到了 f.e.在row["Title"].ToString();

    【讨论】:

      猜你喜欢
      • 2017-02-02
      • 2019-08-01
      • 1970-01-01
      • 2013-01-17
      • 1970-01-01
      • 2011-01-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多