ASP.NET: DataRow не будет отображать содержимое базы данных - PullRequest
0 голосов
/ 18 декабря 2011

Я хочу представить содержимое строк моей базы данных на моем веб-сайте. это мой код:

public partial class Movies : System.Web.UI.Page
{
    private string ConString = "Data Source=MICROSOF-58B8A5\\SQL_SERVER_R2;Initial Catalog=Movie;Integrated Security=True";
    private SqlConnection Con ;
    private SqlCommand cmd ;
    private SqlDataAdapter adapter ;
    private string SqlQuery = "SELECT * FROM Movies";
    private DataTable dt;

    public DataTable DT
    {
        get { return dt ;}
        set { value = dt; }
    }

    protected void Page_Load(object sender, EventArgs e)
    {


        if (Session["UserEnter"] != null)
        {
            UserNameOrGuest.Text = Session["UserEnter"].ToString();
        }
        //else
        //{
        //    Response.Redirect("Home.aspx");
        //}

        this.Con = new SqlConnection(ConString);
        this.Con.Open();
        this.cmd = new SqlCommand(SqlQuery, Con);
        this.adapter = new SqlDataAdapter(SqlQuery,Con);
        dt = new DataTable();
        adapter.Fill(dt);





    }

и это моя веб-форма:

  <%foreach (System.Data.DataRow dataRow in DT.Rows )
    {
        Label1.Text = DT.Rows[0]["Title"].ToString; 
    } %>

Почему он не представляет это правильно?

Спасибо!

Ответы [ 3 ]

2 голосов
/ 18 декабря 2011

Вы уже просматриваете все строки на своей странице, но присваиваете одинаковое значение (заголовок из первого фильма) для той же метки (Label1).

Вместо этого, используя цикл foreach, вы будете отображать данные для каждой строки следующим образом:

<% foreach (System.Data.DataRow dataRow in DT.Rows ) { %>
    <% = dataRow["Title"].ToString %>
    <br /> 
<% } %>

Обратите внимание, что внутри цикла у вас есть доступ к каждой строке в отдельности. Так что просто запишите значение столбца (ов), как вы идете.

0 голосов
/ 19 декабря 2011

Вы пишете: dt = new DataTable ();

Тогда на вашей странице вы получаете:

<% foreach (System.Data.DataRow dataRow в DT.Rows) </p>

«DT» - это ваш класс, «dt» - это то, что действительно содержит Datatable, который вы получили.Должно быть:

<% foreach (System.Data.DataRow dataRow в dt.Rows) // строчные буквы dt </p>

0 голосов
/ 18 декабря 2011

Вы должны использовать:

 Label1.Text = dataRow["Title"].ToString;

Это должно работать!

...