数据库中的int值未更新

时间:2012-08-01 12:35:44

标签: asp.net linq

我的网页更新了服务器上的表记录。 “count”是一个int变量,用于计算测验的分数。其值正确显示在网页上,但保存在数据库中的记录显示所有记录的值“0”。

int count = 0;

protected void Button1_Click(object sender, EventArgs e)

{

count++; // for each correct answer

} 
protected void submitScore_Click(object sender, EventArgs e)

{
var check = (from i in dc.QuizTakens where (i.username ==Context.User.Identity.Name && i.SubName == "Sports" && i.Lev=="Easy")select i).SingleOrDefault();


if (check == null)
{
    QuizTaken q = new QuizTaken();
    q.SubName = "Sports";
    q.Lev = "Easy";
    q.username = Context.User.Identity.Name;
    q.score_max = count;
    dc.QuizTakens.InsertOnSubmit(q);
    dc.SubmitChanges();

 }
 }

该表的主键是SubName,Lev,QId。整个记录被添加到表中,但score_max的值始终为0,即使我能够在网页上显示score_max的正确值。

1 个答案:

答案 0 :(得分:2)

根据您的展示,您的count只是一个类字段,不受ViewState或其他页面级存储的支持。这意味着每个页面回发都会0,因为它将被写入db。

您需要在页面加载之间存储其值,最有可能是ViewState