从文本框中获取新值时出现奇怪的错误

Mat*_*hew 3 c# asp.net validation textbox

我有一个网站,在页面加载时,从数据库中检索某些信息并填充许多文本框.然后,如果用户想要进行任何更改,则可以修改这些文本框的内容,然后他可以保存更改.

这是我正在使用的,以便在保存更改之前获取框的内容:

string username = Session["Username"].ToString();
string vendor_name = Textbox_Vendor.Text;
string address = Textbox_Address.Text;
string city = Textbox_City.Text;
string country = Textbox_Country.Text;
Run Code Online (Sandbox Code Playgroud)

现在,我遇到的主要问题是检索的值是旧值.例如,让我们说在页面加载时,tel字段是12345678,并且用户将文本框中的值更改为789046778.在保存更改之前在变量tel中加载的值是12345678而不是789046778.

如何从文本框中检索新的更新值?谢谢 :)

页面加载

protected void Page_Load(object sender, EventArgs e)
{
    Label_Error.Visible = false;
    Encryption enc = new Encryption();

    if (Session["Username"] == null)
    {
        Response.Redirect("HomePage.aspx");
    }

    else
    {
        string username = Session["Username"].ToString();
        string vendor_name = "";
        string address = "";
        string city = "";
        string country = "";
        bool exists1 = false;
        bool error1 = true;

        try
        {
            string connection1 = ConfigurationManager.ConnectionStrings["DB_Connection"].ConnectionString;
            SqlConnection conn1 = new SqlConnection(connection1);
            SqlDataReader rdr1 = null;

            conn1.Open();
            SqlCommand cmd1 = new SqlCommand("GetByUsername", conn1);
            cmd1.CommandType = CommandType.StoredProcedure;
            cmd1.Parameters.AddWithValue("@username", username);
            rdr1 = cmd1.ExecuteReader();
Run Code Online (Sandbox Code Playgroud)

And*_*rei 5

新值被旧值覆盖Page_Load.您在每次加载页面时都将旧值分配给文本框,而实际上您只想在第一次调用时执行此操作.在回发上你不需要分配任何东西:

if (!Page.IsPostback)
{
    // first call - assign values
    Textbox_Vendor.Text = vendor_name;
    ...
}
Run Code Online (Sandbox Code Playgroud)