Niouzes.org  

Précédent   Niouzes.org > Forum > Newsgroup microsoft.public.fr.* 3 Forum > Newsgroup microsoft.public.fr.dotnet.aspnet
S'inscrire FAQ Membres Calendrier Recherche Messages du jour Marquer les forums comme lus



Réponse

 

LinkBack Outils de la discussion Modes d'affichage
  #1 (permalink)  
Vieux 25/07/2008, 13h19
Sébastien Mornas
 
Messages: n/a
Par défaut [LINQ] Problème de mise-à-jour

Bonjour,
J'ai un problème dans mon site ASP.NET 3.5 avec LINQ; j'éspère que vous
pourrez m'apporter des réponses et je vous remerci si vous passez quelques
minutes à lire ce message.

J'ai donc une page ASP.NET contenant un <asp:Button> et un <asp:Table> (je
simplifie le problème). Admettons que le bouton ajoute un enregistrement
dans une table d'une base de donnée SQL Server 2005 à l'aide d'une requète
LINQ. Le tableau est mise à jours par l'évenement Load de la page pour
afficher tous les enregistrements de la table dans la base de données.
Encore une fois j'utilise une requète LINQ pour mettre à jour le tableau.

Le problème: quand j'ajoute un enregistrement la requete s'effectue
correctement, mais quand la page se ré-affiche le tableau n'est pas à jour.
La requète LINQ ne voit tout simplement pas le dernier enregistrement ajouté
à la base. Si je rafraichi la page manuellement par contre l'enregistrement
apparait comme par magie. J'ai essayé de mettre des context.Refresh(...) un
peu partout, rien n'y fait. Si vous avez une idée, surtout n'hésiter pas !
Merci encore.

Code:
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
using (var c = new TestDataContext())
{
var query = from q in c.GetTable<DataTable1>() select q.Name;
foreach (string s in query)
{
TableRow row = new TableRow();
TableCell cell = new TableCell();
cell.Controls.Add(new Label() { Text = s });
row.Cells.Add(cell);
MyTable.Rows.Add(row);
}
}
}
protected void Button1_Click(object sender, EventArgs e)
{
string[] strings = { "hello", "world", "foo", "bar", "toto" };
Random r = new Random(System.DateTime.Now.Millisecond);
string s = strings[r.Next(5)];
using (var c = new TestDataContext())
{
c.GetTable<DataTable1>().InsertOnSubmit(new DataTable1() { Name
= s });
c.SubmitChanges();
}
}
}

--
Sébastien Mornas
EPITA / 3IE


Réponse avec citation
Alt Today
Advertising
Google Adsense
 
This advertising will not be shown
in this way to registered members.
Register your free account today
and become a member on
Niouzes.org
Standard Sponsored Links

  #2 (permalink)  
Vieux 25/07/2008, 14h28
Patrice
 
Messages: n/a
Par défaut Re: [LINQ] Problème de mise-à-jour

Vérifier dans quel ordre sont exécutés les évènements... A priori c'est un
simple problème d'ordonnancement. Je pense que dans le "load" on récupère
les données pour affichage PUIS dans le click on ajoute une donnée
supplémentaire qui n'a donc pas été récupérée au préalable.

Déplacer la récupération des données plus tard (par exemple dans le
prérender ou dans un "DataBind" quitte à l'appliquer explicitement dans le
click du botuon si besoin) devrait résoudre le problème...

--
Patrice


"Sébastien Mornas" <mornas_s***3ie.fr> a écrit dans le message de groupe de
discussion : uh1zGBl7IHA.5024***TK2MSFTNGP03.phx.gbl...
> Bonjour,
> J'ai un problème dans mon site ASP.NET 3.5 avec LINQ; j'éspère que vous
> pourrez m'apporter des réponses et je vous remerci si vous passez quelques
> minutes à lire ce message.
>
> J'ai donc une page ASP.NET contenant un <asp:Button> et un <asp:Table> (je
> simplifie le problème). Admettons que le bouton ajoute un enregistrement
> dans une table d'une base de donnée SQL Server 2005 à l'aide d'une requète
> LINQ. Le tableau est mise à jours par l'évenement Load de la page pour
> afficher tous les enregistrements de la table dans la base de données.
> Encore une fois j'utilise une requète LINQ pour mettre à jour le tableau.
>
> Le problème: quand j'ajoute un enregistrement la requete s'effectue
> correctement, mais quand la page se ré-affiche le tableau n'est pas à
> jour. La requète LINQ ne voit tout simplement pas le dernier
> enregistrement ajouté à la base. Si je rafraichi la page manuellement par
> contre l'enregistrement apparait comme par magie. J'ai essayé de mettre
> des context.Refresh(...) un peu partout, rien n'y fait. Si vous avez une
> idée, surtout n'hésiter pas ! Merci encore.
>
> Code:
> public partial class _Default : System.Web.UI.Page
> {
> protected void Page_Load(object sender, EventArgs e)
> {
> using (var c = new TestDataContext())
> {
> var query = from q in c.GetTable<DataTable1>() select q.Name;
> foreach (string s in query)
> {
> TableRow row = new TableRow();
> TableCell cell = new TableCell();
> cell.Controls.Add(new Label() { Text = s });
> row.Cells.Add(cell);
> MyTable.Rows.Add(row);
> }
> }
> }
> protected void Button1_Click(object sender, EventArgs e)
> {
> string[] strings = { "hello", "world", "foo", "bar", "toto" };
> Random r = new Random(System.DateTime.Now.Millisecond);
> string s = strings[r.Next(5)];
> using (var c = new TestDataContext())
> {
> c.GetTable<DataTable1>().InsertOnSubmit(new DataTable1() { Name
> = s });
> c.SubmitChanges();
> }
> }
> }
>
> --
> Sébastien Mornas
> EPITA / 3IE
>


Réponse avec citation
  #3 (permalink)  
Vieux 25/07/2008, 14h28
Patrice
 
Messages: n/a
Par défaut Re: [LINQ] Problème de mise-à-jour

Vérifier dans quel ordre sont exécutés les évènements... A priori c'est un
simple problème d'ordonnancement. Je pense que dans le "load" on récupère
les données pour affichage PUIS dans le click on ajoute une donnée
supplémentaire qui n'a donc pas été récupérée au préalable.

Déplacer la récupération des données plus tard (par exemple dans le
prérender ou dans un "DataBind" quitte à l'appliquer explicitement dans le
click du botuon si besoin) devrait résoudre le problème...

--
Patrice


"Sébastien Mornas" <mornas_s***3ie.fr> a écrit dans le message de groupe de
discussion : uh1zGBl7IHA.5024***TK2MSFTNGP03.phx.gbl...
> Bonjour,
> J'ai un problème dans mon site ASP.NET 3.5 avec LINQ; j'éspère que vous
> pourrez m'apporter des réponses et je vous remerci si vous passez quelques
> minutes à lire ce message.
>
> J'ai donc une page ASP.NET contenant un <asp:Button> et un <asp:Table> (je
> simplifie le problème). Admettons que le bouton ajoute un enregistrement
> dans une table d'une base de donnée SQL Server 2005 à l'aide d'une requète
> LINQ. Le tableau est mise à jours par l'évenement Load de la page pour
> afficher tous les enregistrements de la table dans la base de données.
> Encore une fois j'utilise une requète LINQ pour mettre à jour le tableau.
>
> Le problème: quand j'ajoute un enregistrement la requete s'effectue
> correctement, mais quand la page se ré-affiche le tableau n'est pas à
> jour. La requète LINQ ne voit tout simplement pas le dernier
> enregistrement ajouté à la base. Si je rafraichi la page manuellement par
> contre l'enregistrement apparait comme par magie. J'ai essayé de mettre
> des context.Refresh(...) un peu partout, rien n'y fait. Si vous avez une
> idée, surtout n'hésiter pas ! Merci encore.
>
> Code:
> public partial class _Default : System.Web.UI.Page
> {
> protected void Page_Load(object sender, EventArgs e)
> {
> using (var c = new TestDataContext())
> {
> var query = from q in c.GetTable<DataTable1>() select q.Name;
> foreach (string s in query)
> {
> TableRow row = new TableRow();
> TableCell cell = new TableCell();
> cell.Controls.Add(new Label() { Text = s });
> row.Cells.Add(cell);
> MyTable.Rows.Add(row);
> }
> }
> }
> protected void Button1_Click(object sender, EventArgs e)
> {
> string[] strings = { "hello", "world", "foo", "bar", "toto" };
> Random r = new Random(System.DateTime.Now.Millisecond);
> string s = strings[r.Next(5)];
> using (var c = new TestDataContext())
> {
> c.GetTable<DataTable1>().InsertOnSubmit(new DataTable1() { Name
> = s });
> c.SubmitChanges();
> }
> }
> }
>
> --
> Sébastien Mornas
> EPITA / 3IE
>


Réponse avec citation
  #4 (permalink)  
Vieux 25/07/2008, 14h28
Patrice
 
Messages: n/a
Par défaut Re: [LINQ] Problème de mise-à-jour

Vérifier dans quel ordre sont exécutés les évènements... A priori c'est un
simple problème d'ordonnancement. Je pense que dans le "load" on récupère
les données pour affichage PUIS dans le click on ajoute une donnée
supplémentaire qui n'a donc pas été récupérée au préalable.

Déplacer la récupération des données plus tard (par exemple dans le
prérender ou dans un "DataBind" quitte à l'appliquer explicitement dans le
click du botuon si besoin) devrait résoudre le problème...

--
Patrice


"Sébastien Mornas" <mornas_s***3ie.fr> a écrit dans le message de groupe de
discussion : uh1zGBl7IHA.5024***TK2MSFTNGP03.phx.gbl...
> Bonjour,
> J'ai un problème dans mon site ASP.NET 3.5 avec LINQ; j'éspère que vous
> pourrez m'apporter des réponses et je vous remerci si vous passez quelques
> minutes à lire ce message.
>
> J'ai donc une page ASP.NET contenant un <asp:Button> et un <asp:Table> (je
> simplifie le problème). Admettons que le bouton ajoute un enregistrement
> dans une table d'une base de donnée SQL Server 2005 à l'aide d'une requète
> LINQ. Le tableau est mise à jours par l'évenement Load de la page pour
> afficher tous les enregistrements de la table dans la base de données.
> Encore une fois j'utilise une requète LINQ pour mettre à jour le tableau.
>
> Le problème: quand j'ajoute un enregistrement la requete s'effectue
> correctement, mais quand la page se ré-affiche le tableau n'est pas à
> jour. La requète LINQ ne voit tout simplement pas le dernier
> enregistrement ajouté à la base. Si je rafraichi la page manuellement par
> contre l'enregistrement apparait comme par magie. J'ai essayé de mettre
> des context.Refresh(...) un peu partout, rien n'y fait. Si vous avez une
> idée, surtout n'hésiter pas ! Merci encore.
>
> Code:
> public partial class _Default : System.Web.UI.Page
> {
> protected void Page_Load(object sender, EventArgs e)
> {
> using (var c = new TestDataContext())
> {
> var query = from q in c.GetTable<DataTable1>() select q.Name;
> foreach (string s in query)
> {
> TableRow row = new TableRow();
> TableCell cell = new TableCell();
> cell.Controls.Add(new Label() { Text = s });
> row.Cells.Add(cell);
> MyTable.Rows.Add(row);
> }
> }
> }
> protected void Button1_Click(object sender, EventArgs e)
> {
> string[] strings = { "hello", "world", "foo", "bar", "toto" };
> Random r = new Random(System.DateTime.Now.Millisecond);
> string s = strings[r.Next(5)];
> using (var c = new TestDataContext())
> {
> c.GetTable<DataTable1>().InsertOnSubmit(new DataTable1() { Name
> = s });
> c.SubmitChanges();
> }
> }
> }
>
> --
> Sébastien Mornas
> EPITA / 3IE
>


Réponse avec citation
  #5 (permalink)  
Vieux 25/07/2008, 15h12
Sébastien Mornas
 
Messages: n/a
Par défaut Re: [LINQ] Problème de mise-à-jour

Merci Patrice de votre réponse, je vais essayer de changer les évenements
qui mettent à jour le tableau.

"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:
A3D79B0A-9692-4074-9EF2-A6BD22192B2F***microsoft.com...
> Vérifier dans quel ordre sont exécutés les évènements... A priori c'est un
> simple problème d'ordonnancement. Je pense que dans le "load" on récupère
> les données pour affichage PUIS dans le click on ajoute une donnée
> supplémentaire qui n'a donc pas été récupérée au préalable.
>
> Déplacer la récupération des données plus tard (par exemple dans le
> prérender ou dans un "DataBind" quitte à l'appliquer explicitement dans le
> click du botuon si besoin) devrait résoudre le problème...
>
> --
> Patrice
>
>
> "Sébastien Mornas" <mornas_s***3ie.fr> a écrit dans le message de groupe de
> discussion : uh1zGBl7IHA.5024***TK2MSFTNGP03.phx.gbl...
>> Bonjour,
>> J'ai un problème dans mon site ASP.NET 3.5 avec LINQ; j'éspère que vous
>> pourrez m'apporter des réponses et je vous remerci si vous passez
>> quelques minutes à lire ce message.
>>
>> J'ai donc une page ASP.NET contenant un <asp:Button> et un <asp:Table>
>> (je simplifie le problème). Admettons que le bouton ajoute un
>> enregistrement dans une table d'une base de donnée SQL Server 2005 à
>> l'aide d'une requète LINQ. Le tableau est mise à jours par l'évenement
>> Load de la page pour afficher tous les enregistrements de la table dans
>> la base de données. Encore une fois j'utilise une requète LINQ pour
>> mettre à jour le tableau.
>>
>> Le problème: quand j'ajoute un enregistrement la requete s'effectue
>> correctement, mais quand la page se ré-affiche le tableau n'est pas à
>> jour. La requète LINQ ne voit tout simplement pas le dernier
>> enregistrement ajouté à la base. Si je rafraichi la page manuellement par
>> contre l'enregistrement apparait comme par magie. J'ai essayé de mettre
>> des context.Refresh(...) un peu partout, rien n'y fait. Si vous avez une
>> idée, surtout n'hésiter pas ! Merci encore.
>>
>> Code:
>> public partial class _Default : System.Web.UI.Page
>> {
>> protected void Page_Load(object sender, EventArgs e)
>> {
>> using (var c = new TestDataContext())
>> {
>> var query = from q in c.GetTable<DataTable1>() select q.Name;
>> foreach (string s in query)
>> {
>> TableRow row = new TableRow();
>> TableCell cell = new TableCell();
>> cell.Controls.Add(new Label() { Text = s });
>> row.Cells.Add(cell);
>> MyTable.Rows.Add(row);
>> }
>> }
>> }
>> protected void Button1_Click(object sender, EventArgs e)
>> {
>> string[] strings = { "hello", "world", "foo", "bar", "toto" };
>> Random r = new Random(System.DateTime.Now.Millisecond);
>> string s = strings[r.Next(5)];
>> using (var c = new TestDataContext())
>> {
>> c.GetTable<DataTable1>().InsertOnSubmit(new DataTable1() {
>> Name = s });
>> c.SubmitChanges();
>> }
>> }
>> }
>>
>> --
>> Sébastien Mornas
>> EPITA / 3IE
>>

>



Réponse avec citation
  #6 (permalink)  
Vieux 25/07/2008, 15h12
Sébastien Mornas
 
Messages: n/a
Par défaut Re: [LINQ] Problème de mise-à-jour

Merci Patrice de votre réponse, je vais essayer de changer les évenements
qui mettent à jour le tableau.

"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:
A3D79B0A-9692-4074-9EF2-A6BD22192B2F***microsoft.com...
> Vérifier dans quel ordre sont exécutés les évènements... A priori c'est un
> simple problème d'ordonnancement. Je pense que dans le "load" on récupère
> les données pour affichage PUIS dans le click on ajoute une donnée
> supplémentaire qui n'a donc pas été récupérée au préalable.
>
> Déplacer la récupération des données plus tard (par exemple dans le
> prérender ou dans un "DataBind" quitte à l'appliquer explicitement dans le
> click du botuon si besoin) devrait résoudre le problème...
>
> --
> Patrice
>
>
> "Sébastien Mornas" <mornas_s***3ie.fr> a écrit dans le message de groupe de
> discussion : uh1zGBl7IHA.5024***TK2MSFTNGP03.phx.gbl...
>> Bonjour,
>> J'ai un problème dans mon site ASP.NET 3.5 avec LINQ; j'éspère que vous
>> pourrez m'apporter des réponses et je vous remerci si vous passez
>> quelques minutes à lire ce message.
>>
>> J'ai donc une page ASP.NET contenant un <asp:Button> et un <asp:Table>
>> (je simplifie le problème). Admettons que le bouton ajoute un
>> enregistrement dans une table d'une base de donnée SQL Server 2005 à
>> l'aide d'une requète LINQ. Le tableau est mise à jours par l'évenement
>> Load de la page pour afficher tous les enregistrements de la table dans
>> la base de données. Encore une fois j'utilise une requète LINQ pour
>> mettre à jour le tableau.
>>
>> Le problème: quand j'ajoute un enregistrement la requete s'effectue
>> correctement, mais quand la page se ré-affiche le tableau n'est pas à
>> jour. La requète LINQ ne voit tout simplement pas le dernier
>> enregistrement ajouté à la base. Si je rafraichi la page manuellement par
>> contre l'enregistrement apparait comme par magie. J'ai essayé de mettre
>> des context.Refresh(...) un peu partout, rien n'y fait. Si vous avez une
>> idée, surtout n'hésiter pas ! Merci encore.
>>
>> Code:
>> public partial class _Default : System.Web.UI.Page
>> {
>> protected void Page_Load(object sender, EventArgs e)
>> {
>> using (var c = new TestDataContext())
>> {
>> var query = from q in c.GetTable<DataTable1>() select q.Name;
>> foreach (string s in query)
>> {
>> TableRow row = new TableRow();
>> TableCell cell = new TableCell();
>> cell.Controls.Add(new Label() { Text = s });
>> row.Cells.Add(cell);
>> MyTable.Rows.Add(row);
>> }
>> }
>> }
>> protected void Button1_Click(object sender, EventArgs e)
>> {
>> string[] strings = { "hello", "world", "foo", "bar", "toto" };
>> Random r = new Random(System.DateTime.Now.Millisecond);
>> string s = strings[r.Next(5)];
>> using (var c = new TestDataContext())
>> {
>> c.GetTable<DataTable1>().InsertOnSubmit(new DataTable1() {
>> Name = s });
>> c.SubmitChanges();
>> }
>> }
>> }
>>
>> --
>> Sébastien Mornas
>> EPITA / 3IE
>>

>



Réponse avec citation
  #7 (permalink)  
Vieux 25/07/2008, 15h12
Sébastien Mornas
 
Messages: n/a
Par défaut Re: [LINQ] Problème de mise-à-jour

Merci Patrice de votre réponse, je vais essayer de changer les évenements
qui mettent à jour le tableau.

"Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:
A3D79B0A-9692-4074-9EF2-A6BD22192B2F***microsoft.com...
> Vérifier dans quel ordre sont exécutés les évènements... A priori c'est un
> simple problème d'ordonnancement. Je pense que dans le "load" on récupère
> les données pour affichage PUIS dans le click on ajoute une donnée
> supplémentaire qui n'a donc pas été récupérée au préalable.
>
> Déplacer la récupération des données plus tard (par exemple dans le
> prérender ou dans un "DataBind" quitte à l'appliquer explicitement dans le
> click du botuon si besoin) devrait résoudre le problème...
>
> --
> Patrice
>
>
> "Sébastien Mornas" <mornas_s***3ie.fr> a écrit dans le message de groupe de
> discussion : uh1zGBl7IHA.5024***TK2MSFTNGP03.phx.gbl...
>> Bonjour,
>> J'ai un problème dans mon site ASP.NET 3.5 avec LINQ; j'éspère que vous
>> pourrez m'apporter des réponses et je vous remerci si vous passez
>> quelques minutes à lire ce message.
>>
>> J'ai donc une page ASP.NET contenant un <asp:Button> et un <asp:Table>
>> (je simplifie le problème). Admettons que le bouton ajoute un
>> enregistrement dans une table d'une base de donnée SQL Server 2005 à
>> l'aide d'une requète LINQ. Le tableau est mise à jours par l'évenement
>> Load de la page pour afficher tous les enregistrements de la table dans
>> la base de données. Encore une fois j'utilise une requète LINQ pour
>> mettre à jour le tableau.
>>
>> Le problème: quand j'ajoute un enregistrement la requete s'effectue
>> correctement, mais quand la page se ré-affiche le tableau n'est pas à
>> jour. La requète LINQ ne voit tout simplement pas le dernier
>> enregistrement ajouté à la base. Si je rafraichi la page manuellement par
>> contre l'enregistrement apparait comme par magie. J'ai essayé de mettre
>> des context.Refresh(...) un peu partout, rien n'y fait. Si vous avez une
>> idée, surtout n'hésiter pas ! Merci encore.
>>
>> Code:
>> public partial class _Default : System.Web.UI.Page
>> {
>> protected void Page_Load(object sender, EventArgs e)
>> {
>> using (var c = new TestDataContext())
>> {
>> var query = from q in c.GetTable<DataTable1>() select q.Name;
>> foreach (string s in query)
>> {
>> TableRow row = new TableRow();
>> TableCell cell = new TableCell();
>> cell.Controls.Add(new Label() { Text = s });
>> row.Cells.Add(cell);
>> MyTable.Rows.Add(row);
>> }
>> }
>> }
>> protected void Button1_Click(object sender, EventArgs e)
>> {
>> string[] strings = { "hello", "world", "foo", "bar", "toto" };
>> Random r = new Random(System.DateTime.Now.Millisecond);
>> string s = strings[r.Next(5)];
>> using (var c = new TestDataContext())
>> {
>> c.GetTable<DataTable1>().InsertOnSubmit(new DataTable1() {
>> Name = s });
>> c.SubmitChanges();
>> }
>> }
>> }
>>
>> --
>> Sébastien Mornas
>> EPITA / 3IE
>>

>



Réponse avec citation
  #8 (permalink)  
Vieux 25/07/2008, 15h16
Sébastien Mornas
 
Messages: n/a
Par défaut Re: [LINQ] Problème de mise-à-jour

En effet l'évenement PreRender permet de résoudre mon problème. Merci
infiniment!

Sébastien

"Sébastien Mornas" <mornas_s***3ie.fr> a écrit dans le message de news:
eUYRgAm7IHA.4040***TK2MSFTNGP06.phx.gbl...
> Merci Patrice de votre réponse, je vais essayer de changer les évenements
> qui mettent à jour le tableau.
>
> "Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:
> A3D79B0A-9692-4074-9EF2-A6BD22192B2F***microsoft.com...
>> Vérifier dans quel ordre sont exécutés les évènements... A priori c'est
>> un simple problème d'ordonnancement. Je pense que dans le "load" on
>> récupère les données pour affichage PUIS dans le click on ajoute une
>> donnée supplémentaire qui n'a donc pas été récupérée au préalable.
>>
>> Déplacer la récupération des données plus tard (par exemple dans le
>> prérender ou dans un "DataBind" quitte à l'appliquer explicitement dans
>> le click du botuon si besoin) devrait résoudre le problème...
>>
>> --
>> Patrice
>>
>>
>> "Sébastien Mornas" <mornas_s***3ie.fr> a écrit dans le message de groupe de
>> discussion : uh1zGBl7IHA.5024***TK2MSFTNGP03.phx.gbl...
>>> Bonjour,
>>> J'ai un problème dans mon site ASP.NET 3.5 avec LINQ; j'éspère que vous
>>> pourrez m'apporter des réponses et je vous remerci si vous passez
>>> quelques minutes à lire ce message.
>>>
>>> J'ai donc une page ASP.NET contenant un <asp:Button> et un <asp:Table>
>>> (je simplifie le problème). Admettons que le bouton ajoute un
>>> enregistrement dans une table d'une base de donnée SQL Server 2005 à
>>> l'aide d'une requète LINQ. Le tableau est mise à jours par l'évenement
>>> Load de la page pour afficher tous les enregistrements de la table dans
>>> la base de données. Encore une fois j'utilise une requète LINQ pour
>>> mettre à jour le tableau.
>>>
>>> Le problème: quand j'ajoute un enregistrement la requete s'effectue
>>> correctement, mais quand la page se ré-affiche le tableau n'est pas à
>>> jour. La requète LINQ ne voit tout simplement pas le dernier
>>> enregistrement ajouté à la base. Si je rafraichi la page manuellement
>>> par contre l'enregistrement apparait comme par magie. J'ai essayé de
>>> mettre des context.Refresh(...) un peu partout, rien n'y fait. Si vous
>>> avez une idée, surtout n'hésiter pas ! Merci encore.
>>>
>>> Code:
>>> public partial class _Default : System.Web.UI.Page
>>> {
>>> protected void Page_Load(object sender, EventArgs e)
>>> {
>>> using (var c = new TestDataContext())
>>> {
>>> var query = from q in c.GetTable<DataTable1>() select q.Name;
>>> foreach (string s in query)
>>> {
>>> TableRow row = new TableRow();
>>> TableCell cell = new TableCell();
>>> cell.Controls.Add(new Label() { Text = s });
>>> row.Cells.Add(cell);
>>> MyTable.Rows.Add(row);
>>> }
>>> }
>>> }
>>> protected void Button1_Click(object sender, EventArgs e)
>>> {
>>> string[] strings = { "hello", "world", "foo", "bar", "toto" };
>>> Random r = new Random(System.DateTime.Now.Millisecond);
>>> string s = strings[r.Next(5)];
>>> using (var c = new TestDataContext())
>>> {
>>> c.GetTable<DataTable1>().InsertOnSubmit(new DataTable1() {
>>> Name = s });
>>> c.SubmitChanges();
>>> }
>>> }
>>> }
>>>
>>> --
>>> Sébastien Mornas
>>> EPITA / 3IE
>>>

>>

>
>



Réponse avec citation
  #9 (permalink)  
Vieux 25/07/2008, 15h16
Sébastien Mornas
 
Messages: n/a
Par défaut Re: [LINQ] Problème de mise-à-jour

En effet l'évenement PreRender permet de résoudre mon problème. Merci
infiniment!

Sébastien

"Sébastien Mornas" <mornas_s***3ie.fr> a écrit dans le message de news:
eUYRgAm7IHA.4040***TK2MSFTNGP06.phx.gbl...
> Merci Patrice de votre réponse, je vais essayer de changer les évenements
> qui mettent à jour le tableau.
>
> "Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:
> A3D79B0A-9692-4074-9EF2-A6BD22192B2F***microsoft.com...
>> Vérifier dans quel ordre sont exécutés les évènements... A priori c'est
>> un simple problème d'ordonnancement. Je pense que dans le "load" on
>> récupère les données pour affichage PUIS dans le click on ajoute une
>> donnée supplémentaire qui n'a donc pas été récupérée au préalable.
>>
>> Déplacer la récupération des données plus tard (par exemple dans le
>> prérender ou dans un "DataBind" quitte à l'appliquer explicitement dans
>> le click du botuon si besoin) devrait résoudre le problème...
>>
>> --
>> Patrice
>>
>>
>> "Sébastien Mornas" <mornas_s***3ie.fr> a écrit dans le message de groupe de
>> discussion : uh1zGBl7IHA.5024***TK2MSFTNGP03.phx.gbl...
>>> Bonjour,
>>> J'ai un problème dans mon site ASP.NET 3.5 avec LINQ; j'éspère que vous
>>> pourrez m'apporter des réponses et je vous remerci si vous passez
>>> quelques minutes à lire ce message.
>>>
>>> J'ai donc une page ASP.NET contenant un <asp:Button> et un <asp:Table>
>>> (je simplifie le problème). Admettons que le bouton ajoute un
>>> enregistrement dans une table d'une base de donnée SQL Server 2005 à
>>> l'aide d'une requète LINQ. Le tableau est mise à jours par l'évenement
>>> Load de la page pour afficher tous les enregistrements de la table dans
>>> la base de données. Encore une fois j'utilise une requète LINQ pour
>>> mettre à jour le tableau.
>>>
>>> Le problème: quand j'ajoute un enregistrement la requete s'effectue
>>> correctement, mais quand la page se ré-affiche le tableau n'est pas à
>>> jour. La requète LINQ ne voit tout simplement pas le dernier
>>> enregistrement ajouté à la base. Si je rafraichi la page manuellement
>>> par contre l'enregistrement apparait comme par magie. J'ai essayé de
>>> mettre des context.Refresh(...) un peu partout, rien n'y fait. Si vous
>>> avez une idée, surtout n'hésiter pas ! Merci encore.
>>>
>>> Code:
>>> public partial class _Default : System.Web.UI.Page
>>> {
>>> protected void Page_Load(object sender, EventArgs e)
>>> {
>>> using (var c = new TestDataContext())
>>> {
>>> var query = from q in c.GetTable<DataTable1>() select q.Name;
>>> foreach (string s in query)
>>> {
>>> TableRow row = new TableRow();
>>> TableCell cell = new TableCell();
>>> cell.Controls.Add(new Label() { Text = s });
>>> row.Cells.Add(cell);
>>> MyTable.Rows.Add(row);
>>> }
>>> }
>>> }
>>> protected void Button1_Click(object sender, EventArgs e)
>>> {
>>> string[] strings = { "hello", "world", "foo", "bar", "toto" };
>>> Random r = new Random(System.DateTime.Now.Millisecond);
>>> string s = strings[r.Next(5)];
>>> using (var c = new TestDataContext())
>>> {
>>> c.GetTable<DataTable1>().InsertOnSubmit(new DataTable1() {
>>> Name = s });
>>> c.SubmitChanges();
>>> }
>>> }
>>> }
>>>
>>> --
>>> Sébastien Mornas
>>> EPITA / 3IE
>>>

>>

>
>



Réponse avec citation
  #10 (permalink)  
Vieux 25/07/2008, 15h16
Sébastien Mornas
 
Messages: n/a
Par défaut Re: [LINQ] Problème de mise-à-jour

En effet l'évenement PreRender permet de résoudre mon problème. Merci
infiniment!

Sébastien

"Sébastien Mornas" <mornas_s***3ie.fr> a écrit dans le message de news:
eUYRgAm7IHA.4040***TK2MSFTNGP06.phx.gbl...
> Merci Patrice de votre réponse, je vais essayer de changer les évenements
> qui mettent à jour le tableau.
>
> "Patrice" <http://www.chez.com/scribe/> a écrit dans le message de news:
> A3D79B0A-9692-4074-9EF2-A6BD22192B2F***microsoft.com...
>> Vérifier dans quel ordre sont exécutés les évènements... A priori c'est
>> un simple problème d'ordonnancement. Je pense que dans le "load" on
>> récupère les données pour affichage PUIS dans le click on ajoute une
>> donnée supplémentaire qui n'a donc pas été récupérée au préalable.
>>
>> Déplacer la récupération des données plus tard (par exemple dans le
>> prérender ou dans un "DataBind" quitte à l'appliquer explicitement dans
>> le click du botuon si besoin) devrait résoudre le problème...
>>
>> --
>> Patrice
>>
>>
>> "Sébastien Mornas" <mornas_s***3ie.fr> a écrit dans le message de groupe de
>> discussion : uh1zGBl7IHA.5024***TK2MSFTNGP03.phx.gbl...
>>> Bonjour,
>>> J'ai un problème dans mon site ASP.NET 3.5 avec LINQ; j'éspère que vous
>>> pourrez m'apporter des réponses et je vous remerci si vous passez
>>> quelques minutes à lire ce message.
>>>
>>> J'ai donc une page ASP.NET contenant un <asp:Button> et un <asp:Table>
>>> (je simplifie le problème). Admettons que le bouton ajoute un
>>> enregistrement dans une table d'une base de donnée SQL Server 2005 à
>>> l'aide d'une requète LINQ. Le tableau est mise à jours par l'évenement
>>> Load de la page pour afficher tous les enregistrements de la table dans
>>> la base de données. Encore une fois j'utilise une requète LINQ pour
>>> mettre à jour le tableau.
>>>
>>> Le problème: quand j'ajoute un enregistrement la requete s'effectue
>>> correctement, mais quand la page se ré-affiche le tableau n'est pas à
>>> jour. La requète LINQ ne voit tout simplement pas le dernier
>>> enregistrement ajouté à la base. Si je rafraichi la page manuellement
>>> par contre l'enregistrement apparait comme par magie. J'ai essayé de
>>> mettre des context.Refresh(...) un peu partout, rien n'y fait. Si vous
>>> avez une idée, surtout n'hésiter pas ! Merci encore.
>>>
>>> Code:
>>> public partial class _Default : System.Web.UI.Page
>>> {
>>> protected void Page_Load(object sender, EventArgs e)
>>> {
>>> using (var c = new TestDataContext())
>>> {
>>> var query = from q in c.GetTable<DataTable1>() select q.Name;
>>> foreach (string s in query)
>>> {
>>> TableRow row = new TableRow();
>>> TableCell cell = new TableCell();
>>> cell.Controls.Add(new Label() { Text = s });
>>> row.Cells.Add(cell);
>>> MyTable.Rows.Add(row);
>>> }
>>> }
>>> }
>>> protected void Button1_Click(object sender, EventArgs e)
>>> {
>>> string[] strings = { "hello", "world", "foo", "bar", "toto" };
>>> Random r = new Random(System.DateTime.Now.Millisecond);
>>> string s = strings[r.Next(5)];
>>> using (var c = new TestDataContext())
>>> {
>>> c.GetTable<DataTable1>().InsertOnSubmit(new DataTable1() {
>>> Name = s });
>>> c.SubmitChanges();
>>> }
>>> }
>>> }
>>>
>>> --
>>> Sébastien Mornas
>>> EPITA / 3IE
>>>

>>

>
>



Réponse avec citation
 
Réponse
Tags: , ,



Outils de la discussion
Modes d'affichage

Règles de messages
Vous pouvez ouvrir de nouvelles discussions : nonoui
Vous pouvez envoyer des réponses : nonoui
Vous pouvez insérer des pièces jointes : nonoui
Vous pouvez modifier vos messages : nonoui

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Discussions similaires

Discussion Auteur Forum Réponses Dernier message
[Linq]Comment récupérer des résultats d'une procédure stockée en Linq PhilTheGap Newsgroup microsoft.public.fr.dotnet 0 24/01/2008 13h27
Problème mise en veille suite à mise à jour XP SP2 philimor Newsgroup microsoft.public.fr.windowsxp.installation 1 27/12/2007 19h11
Smart-Linq USB cable, problème Andre Foucart Newsgroup alt.fr.comp.os.ms-windows.xp 6 17/08/2007 20h28
Problème de mise à jour Beep Beep Newsgroup microsoft.public.fr.windows.mediacenter 0 07/02/2007 12h02
problème 3D après mise à jour Bruno Newsgroup alt.fr.os.mandrake 1 22/01/2006 20h07


Fuseau horaire GMT. Il est actuellement 23h52.

Italiano - German - English - Español


Édité par : vBulletin® version 3.6.8
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO 3.1.0 © 2007, Crawlability, Inc. Tous droits réservés.
Version française #13 par l'association vBulletin francophone


Politique - Droit - Philosophie - Football - Medicine - Française - Bricolage - Photo - Mac Os X - Divers - Physique - Jardinage
Mecanique - Moto - Photographie - Rail - Route - Aviation - Cinema - Linux - Psychanalyse - Finance - Enigmes - Rugby
Environnement - Histoire - Programmes TV - Education - Travail - Voyages - Windows - Immobilier - Cuisine
Windows XP - Excel - Word - Outlook - Access - Internet Explorer - Office - Vista

Page generated in 0,50438 seconds with 11 queries