您好,我在尝试为数据库中存储的配置文件创建“编辑”页面时遇到此问题。
为了简单起见,我得到了一个textbox
,我从数据库中获取一个值并将其应用到带有教科书的文本框中。 text =“value”;`。
到目前为止工作得很好。 然后我希望用户能够编辑文本框中的文本,然后按保存,这将保存文本框的编辑内容。但它没有,它保存了我用textbox.text应用的值。 我使用textbox.text从按钮单击功能中的文本框中获取值。
我做错了什么? - 来自用户的输入是否不会覆盖.text value
?
TextBoxNavn.Text = "Navn";
protected void ButtonSave_Click(object sender, EventArgs e)
{
using (SqlCommand command = new SqlCommand())
{
command.Connection = connection;
command.CommandType = CommandType.Text;
command.CommandText = "UPDATE Politikere SET Navn = @Navn WHERE ID = @ID";
command.Parameters.AddWithValue("@Navn", TextBoxNavn.Text);
}
}
在第一行和update语句之间,用户已经在文本框中编辑了文本,但它仍然保存了第一行的值。
如果我删除第一行并在文本框中输入值,则会保存输入的值。这就是为什么我怀疑问题是.text - 但我不知道该怎么办。enter code here
修改
对不起,如果我不清楚。但是所有的值都输入并且效果很好。对某些人来说太好了。 有太多的代码指出这个小片段。但是通过缩小问题范围,我发现如果我没有在page_load中使用TextBoxNavn.Text插入数据库值,它会使用新值更新数据库中的值。但是在插入时,用户编辑的值不会被保存,但是我从数据库中插入的值
编辑II
步骤:
答案 0 :(得分:2)
我假设您在页面加载中使用DataBind()。如果是,请将其更改为“
if(!Page.IsPostBack)
{
DataBind();
}
`
或者共享将数据绑定到文本框的完整代码。如果在PageLoad上绑定控件,则会在控件事件之前调用Bind,在这种情况下,您输入的值将被Databind()函数覆盖。请参阅以下链接以获取asp.net页面生命周期。
http://msdn.microsoft.com/en-us/library/ms178472(v=vs.100).aspx