数据绑定到中继器

时间:2016-09-27 10:17:38

标签: c# asp.net

我很难绕过数据表的使用。因为我一直试图使用它们更活跃,现在这是我的问题表面。

此代码不返回错误,但没有数据绑定到转发器:

页:

<asp:Repeater ID="RepeaterBrand" runat="server">
    <ItemTemplate>
        <p><%# Eval("products_name")%></p>
    </ItemTemplate>
</asp:Repeater>

代码隐藏:

    protected void Page_Load(object sender, EventArgs e)
{ 
    if (Request.QueryString["brand"] != null && !IsPostBack)
    {

        var Brand = (Request.QueryString["brand"]);

        SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ToString());
        SqlCommand cmd = new SqlCommand("SELECT * FROM Table_Products WHERE products_brand = @Pr_brand", conn);
        cmd.Connection = conn;
        cmd.Parameters.Add("@Pr_brand", System.Data.SqlDbType.VarChar).Value = Brand;
        DataTable dt = new DataTable();
        conn.Open();
        SqlDataReader reader = cmd.ExecuteReader();
        if (reader.HasRows && reader.Read())
        {
            dt.Load(reader);
            RepeaterBrand.DataSource = dt;
            RepeaterBrand.DataBind();
        }
        conn.Close();
    }
}

我对C#很陌生,所以我可能需要一些视觉辅助来实现这个目标。

提前谢谢。

我希望这可以帮助任何人,这是我在JaydipJ向我展示语法后最终得到的结果。

        if (Request.QueryString["brand"] != null && !IsPostBack)
    {

        SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ToString());
        SqlCommand cmd = new SqlCommand();
        cmd.Connection = conn;
        var Brand = (Request.QueryString["brand"]);
        cmd.CommandText = "SELECT * FROM Table_Products WHERE products_brand = @Pr_brand";
        cmd.Parameters.Add("@Pr_brand", System.Data.SqlDbType.VarChar).Value = Brand;

        SqlDataAdapter adapter = new SqlDataAdapter(cmd);
        DataTable dt = new DataTable();
        adapter.Fill(dt);
        RepeaterBrand.DataSource = dt;
        RepeaterBrand.DataBind();

2 个答案:

答案 0 :(得分:1)

不要从SQLDataReader读取数据。使用它来填充DataTable

if (reader.HasRows )
{
   dt.Load(reader);
   RepeaterBrand.DataSource = dt;
   RepeaterBrand.DataBind();
}

答案 1 :(得分:0)

尝试使用此代码它正在工作。

            try
            {
                con.Open();
                SqlCommand cmd = new SqlCommand("select Mst_Emp_Login.Emp_Uname from Mst_Emp_Login", con);
                SqlDataAdapter adp = new SqlDataAdapter(cmd);
                DataSet ds = new DataSet();
                adp.Fill(ds);
                Repeater1.DataSource = ds;
                Repeater1.DataBind();
                ds.Dispose();adp.Dispose();
                cmd.Dispose();
                con.Close();con.Dispose();
            }
            catch(Exception err)
            {
                throw err;
            }