Значения не обновляются после запроса на обновление - PullRequest
0 голосов
/ 11 марта 2012

Я занимаюсь разработкой проекта в ASP.NET с использованием c # и SQL Server 2005 в качестве серверной части.Он включает в себя страницу profile.aspx, которая отображает информацию о пользователе из базы данных.Переменная сеанса используется для отслеживания текущего пользователя, вошедшего в систему.

Таблица profiles в базе данных содержит столбец username и 10 других столбцов, таких как dept, address, contact, skills, interests и т. Д. И т. Д.

Я отображаю все эти значения на profile.aspx.Другая страница - edit_profile.aspx, которая появляется при нажатии кнопки редактирования на profile.aspx.Здесь данные отображаются в текстовых полях, уже отображаются более старые записи, которые можно редактировать, и нажмите кнопку Update для подтверждения.

Запрос на обновление выполняется нормально, ошибки нет, но значения не являются обновлениями в таблицах базы данных.Какова возможная причина?Решение?

Спасибо


protected void Page_Load(object sender, EventArgs e)
{
    string CNS = ConfigurationManager.ConnectionStrings["myconn"].ToString();
    SqlConnection con = new SqlConnection(@CNS);
    SqlDataAdapter sda = new SqlDataAdapter("select * from profiles where username='" +     Session["currentusername"].ToString()+"'", con);
    DataSet ds = new DataSet();
    sda.Fill(ds, "profiles");
    txt_name.Text = ds.Tables["profiles"].Rows[0][0].ToString();
    txt_deptt.Text = ds.Tables["profiles"].Rows[0][1].ToString();
    txt_qualificatns.Text = ds.Tables["profiles"].Rows[0][2].ToString();
    txt_add.Text = ds.Tables["profiles"].Rows[0][3].ToString();
    txt_contacts.Text = ds.Tables["profiles"].Rows[0][4].ToString();
    txt_interests.Text = ds.Tables["profiles"].Rows[0][5].ToString();
    txt_awards.Text = ds.Tables["profiles"].Rows[0][6].ToString();
    txt_website.Text = ds.Tables["profiles"].Rows[0][7].ToString();
    txt_skills.Text = ds.Tables["profiles"].Rows[0][8].ToString();
    txt_mstatus.Text = ds.Tables["profiles"].Rows[0][9].ToString();
    ds.Reset();
}



protected void Button1_Click(object sender, EventArgs e)
{
    string CNS = ConfigurationManager.ConnectionStrings["myconn"].ToString();
    SqlConnection con = new SqlConnection(@CNS);
    SqlCommand sda = new SqlCommand("update profiles set department='"+txt_deptt.Text+"',qualifications='"+txt_qualificatns.Text+"', address='"+txt_add.Text+"', contacts='"+txt_contacts.Text+"', interests='"+txt_interests.Text+"', awards='"+txt_awards.Text+"', website='"+txt_website.Text+"', skills='"+txt_skills.Text+"', mstatus='"+txt_mstatus.Text+"' where username='" + Session["currentusername"].ToString() + "'", con);
    DataSet ds = new DataSet();
    try
    {
        con.Open();
        int temp=sda.ExecuteNonQuery();
        con.Close();
        if (temp >= 1)
        {
            lbl_message.ForeColor = System.Drawing.Color.Green;
            lbl_message.Text = "Profile Updated Successfully!";
        }
        else
        {
            lbl_message.ForeColor = System.Drawing.Color.Red;
            lbl_message.Text = "Integer less than 1";
        }

    }
    catch
    {
        lbl_message.ForeColor = System.Drawing.Color.Red;
        lbl_message.Text = "Try Again Later, An Error Occured!";
    }
    //Response.Redirect("profile.aspx");
}

}

1 Ответ

0 голосов
/ 14 марта 2012

Вы перезаписываете содержимое своих текстовых полей каждый раз, когда страница загружается, поэтому введенный пользователем conntet никогда не записывается в базу данных ...

Посмотрите на метод Page.IsPostBack.По сути, оберните команды для заполнения текстовых полей

if (!Page.IsPostBack) {}

Чтобы загружать значения в текстовое поле только при первой загрузке страницы (и, таким образом, не перезаписывать введенные пользователем значения при нажатии кнопкиНажмите кнопку, чтобы проверить, что страница не является отправкой назад.

Я думаю, что книга на базовом ASP.Net поможет ответить на многие вопросы, которые у вас могут возникнуть на ранних этапах.

protected void Page_Load(object sender, EventArgs e)
{
 if (!Page.IsPostBack) {
    string CNS = ConfigurationManager.ConnectionStrings["myconn"].ToString();
    SqlConnection con = new SqlConnection(@CNS);
    SqlDataAdapter sda = new SqlDataAdapter("select * from profiles where username='" +     Session["currentusername"].ToString()+"'", con);
    DataSet ds = new DataSet();
    sda.Fill(ds, "profiles");
    txt_name.Text = ds.Tables["profiles"].Rows[0][0].ToString();
    txt_deptt.Text = ds.Tables["profiles"].Rows[0][1].ToString();
    txt_qualificatns.Text = ds.Tables["profiles"].Rows[0][2].ToString();
    txt_add.Text = ds.Tables["profiles"].Rows[0][3].ToString();
    txt_contacts.Text = ds.Tables["profiles"].Rows[0][4].ToString();
    txt_interests.Text = ds.Tables["profiles"].Rows[0][5].ToString();
    txt_awards.Text = ds.Tables["profiles"].Rows[0][6].ToString();
    txt_website.Text = ds.Tables["profiles"].Rows[0][7].ToString();
    txt_skills.Text = ds.Tables["profiles"].Rows[0][8].ToString();
    txt_mstatus.Text = ds.Tables["profiles"].Rows[0][9].ToString();
    ds.Reset();
}
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...