Bonjour,
j'espère vraiment que qq un peut m'aider la dessus car cela fait un bout de temps que j'essais mais en vain,
alors, j'ai deux tables, 1 c'est les titres et 2 c'est les auteurs des livres (1 à plusieurs)
dans ma page aspx j'ai créer un repeater (parent) pour afficher les titres, et un autre repeater (child) pour afficher les auteurs correspondants,
mon but est d'afficher 5 résultats par page, le
voici mon code
protected void Page_Load(object sender, System.EventArgs e)
{
if (!IsPostBack)
{
intPageSize.Text = "5";
intCurrIndex.Text = "0";
DataBind();
}
}
protected void DataBind()
{
OleDbConnection connection = new OleDbConnection();
// mettre la connection en string pour pouvoir la recuperer dans l'adaptateur
connection.ConnectionString = "ma chaine de connection";
connection.Open();
OleDbDataAdapter cmd1 = new OleDbDataAdapter(" select * from table 1 ", connection);
OleDbDataAdapter cmd2 = new OleDbDataAdapter("select * from table 2 ", connection);
//Create and fill the DataSet.
DataSet ds = new DataSet();
int a = Convert.ToInt32(intCurrIndex.Text);
int b = Convert.ToInt32(intPageSize.Text);
cmd1.Fill(ds,a , b, "table1");
intRecordCount.Text = Convert.ToString(ds.Tables["table 1"].Rows.Count);
//Create a second DataAdapter for the Stock table.
cmd2.Fill(ds, "table 2");
//Create the relation bewtween the product and stock tables.
ds.Relations.Add("myrelation", ds.Tables["table 1"].Columns["ID_ASS"], ds.Tables["table 2"].Columns["ID_ASS"]);
//Bind the product table to the parent Repeater control, and call DataBind.
parentRepeater.DataSource = ds.Tables["table 1"];
Page.DataBind();
connection.Close();
lblstop.Text = Convert.ToString(Convert.ToInt32(Convert.ToInt32(intRecordCount.Text) / Convert.ToInt32(intPageSize.Text)) + 1);
PrintStatus();
}
l'erreur que j'ai est la suivante:
System.ArgumentException: Cette contrainte ne peut pas être activée, car toutes les valeurs n'ont pas de valeurs parentes correspondantes.
et elle au niveau de : ds.Relations.Add("myrelation", ds.Tables["table 1"].Columns["ID_ASS"], ds.Tables["table 2"].Columns["ID_ASS"]);
PS: quand j'enleve le a et b de cmd1.Fill(ds,a , b, "table1"); je n'ai plus d'erreur mais il m'affiche tous les résultats dans une seule page
Help please