2 votes

Lier les données à un répéteur

J'ai vraiment du mal à me faire une idée de l'utilisation des tables de données. J'ai essayé de les utiliser de manière plus active, et c'est là que mon problème fait surface.

Ce code ne renvoie aucune erreur mais aucune donnée n'est liée au répéteur :

Page :

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

Codebehind :

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

Je suis assez novice en C# et je pourrais avoir besoin d'une aide visuelle pour comprendre.

Merci d'avance.

J'espère que cela pourra aider quelqu'un, c'est ce que j'ai obtenu après que JaydipJ m'ait montré la syntaxe.

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

1voto

Jaydip Jadhav Points 10489

Ne lisez pas les données de SQLDataReader. Utilisez-les telles quelles pour remplir la DataTable.

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

0voto

Hardik Patel Points 114

Essayez ce code, il fonctionne.

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X