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();
}
}
}
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Patrice
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" a écrit dans le message de groupe de discussion :
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
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();
}
}
}
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" a écrit dans le message de groupe de discussion :
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
Sébastien Mornas
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:
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" a écrit dans le message de groupe de discussion :
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
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();
}
}
}
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:
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" a écrit dans le message de groupe de discussion :
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
Sébastien Mornas
En effet l'évenement PreRender permet de résoudre mon problème. Merci infiniment!
Sébastien
"Sébastien Mornas" a écrit dans le message de news:
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:
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" a écrit dans le message de groupe de discussion :
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
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();
}
}
}
En effet l'évenement PreRender permet de résoudre mon problème. Merci infiniment!
Sébastien
"Sébastien Mornas" a écrit dans le message de news:
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:
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" a écrit dans le message de groupe de discussion :
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
Jérôme PINNEAU
quand je regarde des lignes de codes qui utilise LINQ, je trouve que le code n'est vraiment pas lisible. Mélanger ainsi du semblant de SQL avec du code C# !! Quelqu'un a un avis la dessus ?
Vladam
"Sébastien Mornas" a écrit dans le message de news:
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
quand je regarde des lignes de codes qui utilise LINQ, je trouve que le code
n'est vraiment pas lisible.
Mélanger ainsi du semblant de SQL avec du code C# !!
Quelqu'un a un avis la dessus ?
Vladam
"Sébastien Mornas" <mornas_s@3ie.fr> a écrit dans le message de
news: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();
}
}
}
quand je regarde des lignes de codes qui utilise LINQ, je trouve que le code n'est vraiment pas lisible. Mélanger ainsi du semblant de SQL avec du code C# !! Quelqu'un a un avis la dessus ?
Vladam
"Sébastien Mornas" a écrit dans le message de news:
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(); } } }