Linq to ADO更新数据不工作

本文关键字:工作 数据 更新 to ADO Linq | 更新日期: 2023-09-27 17:51:19

我在c#和asp.net中使用Linq来使用方法SaveChanges();更新数据字段,但它不工作!!我不知道为什么?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class Default2 : System.Web.UI.Page
{
 private GitamarineEntities context = new GitamarineEntities();
 protected void Page_Load(object sender, EventArgs e)
 {
    var ves = context.tblVessels.First(v => v.vID == 15);
    txtNav.Text = ves.vNavEqpm;
 }
 protected void Button1_Click(object sender, EventArgs e)
 {
    var ves =  context.tblVessels.Single(v => v.vID == 15);
    ves.vNavEqpm = txtNav.Text.Trim();
    context.SaveChanges();
 }
}

编辑后仍然没有运气

public partial class Default2 : System.Web.UI.Page
{
  protected void Page_Load(object sender, EventArgs e)
  {
    //GitamarineEntities1 contextShow = new GitamarineEntities1();
    //var vesShow = contextShow.tblVessels.First(v => v.vID == 15);
    //txtNav.Text = vesShow.vNavEqpm;
    //contextShow.Dispose();
  }
  protected void Button1_Click(object sender, EventArgs e)
  {
    GitamarineEntities1 contextUpdate = new GitamarineEntities1();
    var vesUpdate = contextUpdate.tblVessels.First(v => v.vID == 15);
    vesUpdate.vNavEqpm = txtNav.Text;
    contextUpdate.SaveChanges();
  }
}

伙计们,我已经改变了上面的编码,当我注释出Page_Load编码时,它仍然有效!但是这样用户就看不到他/她在改变什么了!!

Linq to ADO更新数据不工作

您需要做的就是检查Page_Load中的IsPostBack。试试这个:

        if (!IsPostBack)
        {
           GitamarineEntities1 contextShow = new GitamarineEntities1();
           var vesShow = contextShow.tblVessels.First(v => v.vID == 15);
           txtNav.Text = vesShow.vNavEqpm;
        }

考虑到你的文本确实被加载在文本框内,我想没有什么问题与数据库的链接。

你的HTML页面上的按钮可能没有分配给你的Button_Click事件处理程序。

你的按钮应该是这样的:

 <asp:Button ID="button1" runat="server" Text="Button" OnClick="Button1_Click" />

确保它位于<form>元素中,并且该元素的属性为runat="server"

在事件处理程序上设置一个断点,并查看它是否被触发。如果没有,那么我们需要更多的代码来解决这个问题。

UpdateModel()到底在做什么?尝试将其注释出来,看看vNavEqpm是否正在从文本框值更新。另外需要考虑的是,重新初始化context在button click event中并在使用时进行处理,不建议这样保持连接活动状态,这样可能会锁定PageLoad

中的检索记录