Обновление данных профиля не работает веб-формы asp.net - PullRequest
0 голосов
/ 26 сентября 2018

Я пытаюсь обновить простой запрос, используя веб-формы, но безрезультатно.Я попытался отладить код, но не смог найти, где находится ошибка.Существует два метода page_load() и editProfile_click(), из которых следующий код:

    protected void Page_Load(object sender, EventArgs e)
    {
        int id = Convert.ToInt32(Session["id"]);
        string connetionString = null;
        SqlConnection con;
        SqlDataReader dr;
        connetionString = @"Data Source=.\SQLEXPRESS;Initial Catalog=AspNetInventory;Integrated Security=True";
        con = new SqlConnection(connetionString);
        try
        {
            con.Open();
            string query = @"SELECT * FROM UserDetails WHERE employeeId = @id";
            SqlCommand cmd = new SqlCommand(query, con);
            cmd.Parameters.AddWithValue("@Id", id);
            dr = cmd.ExecuteReader();
            if (dr.Read())
            {
                Username.Text = dr[1].ToString();
                UName.Text = dr[3].ToString();
                UPhoneNo.Text = dr[4].ToString();
                Uemail.Text = dr[5].ToString();
            }
        }//try
        catch (SqlException ex)
        {
            Username.Text = "db Connection fail" + ex;
        }
    }

    protected void SaveProfile_Click(object sender, EventArgs e)
    {
        int id = Convert.ToInt32(Session["id"]);
        string username, fullName, phoneNo, Email;
        username = Convert.ToString(Username.Text);
        fullName = Convert.ToString(UName.Text);
        phoneNo = Convert.ToString(UPhoneNo.Text);
        Email = Convert.ToString(Uemail.Text);

        string connetionString = null;
        SqlConnection con;

        connetionString = @"Data Source=.\SQLEXPRESS;Initial Catalog=AspNetInventory;Integrated Security=True";
        con = new SqlConnection(connetionString);
        try
        {
            con.Open();
            string query = @"UPDATE UserDetails SET userName=@UserName, Name= @fullName, phoneNo = @Phone, Email=@uEmail WHERE employeeId='" + id + "'";
            SqlCommand cmd = new SqlCommand(query, con);

            cmd.Parameters.AddWithValue("@UserName",username);
            cmd.Parameters.AddWithValue("@fullName", fullName);
            cmd.Parameters.AddWithValue("@Phone", phoneNo);
            cmd.Parameters.AddWithValue("@uEmail", Email);
            cmd.ExecuteNonQuery();
            con.Close();
        }//try
        catch (SqlException ex)
        {
            Username.Text = "db Connection fail" + ex;
        }           
    }

Когда я нажимаю кнопку Обновить профиль, извлекается неизмененная запись из базы данных.Подскажите пожалуйста, есть ли проблема с запросом.

Ответы [ 2 ]

0 голосов
/ 31 октября 2018

Используйте if (! IsPostBack) {// вот ваш код} при загрузке страницы, потому что когда вы нажимаете кнопку сохранения, сначала выполняется page_load, а затем событие сохранения клика.В противном случае page_load перезаписывает ваши изменения и сохраняет.

0 голосов
/ 31 октября 2018

Попробуйте:

string query = @"UPDATE UserDetails SET userName=@UserName, Name= @fullName, phoneNo = @Phone, Email=@uEmail WHERE employeeId=" + id ;

Или:

string query = @"UPDATE UserDetails SET userName=@UserName, Name= @fullName, phoneNo = @Phone, Email=@uEmail WHERE employeeId=@ID";
cmd.Parameters.AddWithValue("@ID", id);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...