c# - 使用 asp.net 文本框进行 linq to sql 更新的问题

标签 c# asp.net linq-to-sql

我有一个文本框和一个按钮。在页面加载时,我从一行中选择一列并将其值放入文本框中。我有一个按钮单击方法,可以使用文本框中的值更新同一列/行。

我遇到的问题是,当我清除文本框中的文本、输入新数据并点击提交时,新文本值不会被保存,而是使用旧文本值。

我在按钮单击方法的末尾放置了一个断点,看来 asp.net 正在发送文本框的旧值,而不是我输入的新值。我完全被难住了。

  • 即使我在文本框中设置了 viewstate false,此问题仍然存在。
  • 我的两个 LINQ 查询都包含在 using 语句中。

有什么想法吗?

编辑:这是完整的代码:

 protected void Page_Load(object sender, EventArgs e)
    {

        using (StoreDataContext da = new StoreDataContext())
        {
            var detail = from a in da.Brands
                         where a.BrandID == 5
                         select new
                         {
                             brand = a,
                         };
            foreach (var d in detail)
            {
                txtEditDescription.Text = d.brand.Description;
            }
        }  

    }
    protected void Button1_Click(object sender, EventArgs e)
    {
        using (StoreDataContext dk = new StoreDataContext())
        {

            Brand n = dk.Brands.Single(p => p.BrandID == 5);

        n.Description = txtEditDescription.Text;

        dk.SubmitChanges();
        }
    }

最佳答案

正如您所说,在 Page_Load 中,您将原始值检索到文本框中,这将覆盖任何更改。

是的,Page_Load 确实在执行按钮单击(或任何其他控制事件)之前执行。我猜您在此之前已经完成了 Windows 窗体开发,ASP.Net Web 窗体事件模型是完全不同的。查看ASP.NET Page Life Cycle Overview .

关于c# - 使用 asp.net 文本框进行 linq to sql 更新的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4404540/

相关文章:

c# - 如何使用带有 lambda 参数的 typeof(object).GetMethod()

c# - Asp.net 网页已过期且浏览器后退按钮

c# - XElement 查询给出错误 : "Sequence contains no elements"

linq - 我应该如何开始学习 ADO.NET Entity Framework ?

asp.net - LINQ to SQL 执行时间比 SSMS SQL 长 50 倍

c# - 如何将图片保存到sqlite数据库

c# - 如何在一张图片中找到另一张图片?

c# - 如何在不使用 Loop 的情况下更改 List<UIControl> 中控件的属性?

c# - ASP.net 同时连接到两个数据库?

c# - 基于本地文件的 SQL Server