C# 使用.net表单中的实体保存对textbox.text的更改
因此,我尝试使用.net表单中文本框中的文本更新数据库中的一行 在pageload上,我加载值并将其分配给textbox的text属性。接下来,我允许用户更改文本并单击按钮上载,但是数据库中的值没有更改 如果我将holter.companyName值更改为静态字符串,数据库将更新。此外,如果我没有在pageloads处分配companyNameTB.text值,则更新按钮将按预期工作 有什么想法吗C# 使用.net表单中的实体保存对textbox.text的更改,c#,asp.net,C#,Asp.net,因此,我尝试使用.net表单中文本框中的文本更新数据库中的一行 在pageload上,我加载值并将其分配给textbox的text属性。接下来,我允许用户更改文本并单击按钮上载,但是数据库中的值没有更改 如果我将holter.companyName值更改为静态字符串,数据库将更新。此外,如果我没有在pageloads处分配companyNameTB.text值,则更新按钮将按预期工作 有什么想法吗 protected void Page_Load(object sender, Event
protected void Page_Load(object sender, EventArgs e)
{
PortalEntities db = new PortalEntities();
var holterQuery = from holt in db.Holters
where holt.Id == 1
select holt;
Holter holter = holterQuery.Single();
string companyName = holter.CompanyName;
CompanyNameTB.Text = companyName;
}
protected void Button1_Click(object sender, EventArgs e)
{
PortalEntities db = new PortalEntities();
var holterQuery = from holt in db.Holters
where holt.Id == 1
select holt;
Holter holter = holterQuery.Single();
holter.CompanyName = CompanyNameTB.Text;
holter.Id = 1;
db.SaveChanges();
}
提交表单时,页面加载方法似乎正在覆盖文本框。将其放入条件语句中,以检查请求是否为回发,如下所示:
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostback)
{
PortalEntities db = new PortalEntities();
var holterQuery = from holt in db.Holters
where holt.Id == 1
select holt;
Holter holter = holterQuery.Single();
string companyName = holter.CompanyName;
CompanyNameTB.Text = companyName;
}
}
这应该允许在最初加载页面时从数据库填充文本框,但当用户提交表单时,应跳过该部分代码,以便文本框中的新值不会被覆盖。在页面加载方法中执行此操作,否则,文本框中的值将在任何页面请求时刷新为原始值(回发请求也是如此) 你不需要这一行是按钮点击法
holter.Id = 1;
干得不错,干杯!
holter.Id = 1;