It is behaving exactly as you are telling it to. On the initial visit to the page the PgaeLoad event populates the textboxes from the database. After entering new text and clicking the button a postback is generated which causes the PageLoad event to fire once again, returning the textboxes to the original values from the database.
use IsPostBack
protected void Page_Load(object sender, EventArgs e)
{
if(!IsPostBack)
{
}
}