ASP.NET:DataRow不会呈现数据库的内容

时间:2011-12-18 19:18:06

标签: asp.net sql-server database datarow

我想在我的网站上展示我的数据库行的内容。 这是我的代码:

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 个答案:

答案 0 :(得分:2)

您已经遍历了页面中的所有行,但是您将相同值(第一部电影的标题)分配给相同的标签(Label1) 。

相反,使用foreach循环,您将显示每行的数据,如下所示:

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

请注意,在循环内部,您可以单独访问每一行。所以,只要在你去的时候写出列的值。

答案 1 :(得分:0)

您应该使用:

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

这应该有用!

答案 2 :(得分:0)

你在写:     dt = new DataTable();

然后在你的页面中你有:

&lt;%foreach(DT.Rows中的System.Data.DataRow dataRow)

“DT”是你的类,“dt”是你真正包含的数据表。它应该是:

&lt;%foreach(dt.Rows中的System.Data.DataRow dataRow)//小写dt