Обновление базы данных - PullRequest
0 голосов
/ 25 февраля 2011

Я использую следующий код для обновления электронной почты и пароля человека в БД.У меня есть datagridview, который имеет только один ряд.Когда я нажимаю кнопку Обновить, ничего не происходит - страница обновляется, и значения в текстовых полях возвращаются к тому, что они были раньше .... обновление не работает.Пожалуйста помоги.Спасибо!

protected void btnUpdateAccount_Click(object sender, EventArgs e)
{
    SqlConnection conn = new SqlConnection(GetConnectionString());

    string sql = "UPDATE Member SET [Email] = @email, [Password] = @password WHERE [MemberID] = '" + mem_id + "'";

    TextBox email = email = (TextBox)Gridview1.Rows[0].FindControl("user_email");
    TextBox password = (TextBox)Gridview1.Rows[0].FindControl("user_password");

    try
    {

        conn.Open();
        SqlCommand cmd = new SqlCommand(sql, conn);

        cmd.Parameters.Add("@email", SqlDbType.VarChar);
        cmd.Parameters.Add("@password", SqlDbType.VarChar);

        cmd.Parameters["@email"].Value = email.Text;
        cmd.Parameters["@password"].Value = password.Text;

        cmd.CommandType = CommandType.Text;
        cmd.ExecuteNonQuery();

    }
    catch (System.Data.SqlClient.SqlException ex)
    {

        string msg = "Insert Error: ";
        msg += ex.Message;
        throw new Exception(msg);
    }

    finally
    {
        conn.Close();
    }

}

Ответы [ 4 ]

1 голос
/ 25 февраля 2011

cmd.ExecuteNonQuery(); он возвращает целочисленное значение, так что вы можете положить. int i = cmd.ExecuteNonQuery(); и посмотрите, что он возвращает, также вы можете использовать, наконец, после catch, чтобы убедиться, что db con закрыт. здесь вы просто используете его в перехвате, также попытайтесь установить точку останова и посмотреть, правильно ли передан параметр, и следовать ему до конца. как

finally
        {
            if (con != null)
            {
                con.Close();
            }
        }
0 голосов
/ 25 февраля 2011

Существует ряд вещей, которые могут произойти.

  1. 1) Событие btnUpdateAccount_Click никогда не вызывается.Чтобы это исправить, убедитесь, что для тега asp: Button установлен атрибут OnClick = "btnUpdateAccount_Click".
  2. Исключение выдается, и вы этого не замечаете.
  3. База данных обновляется, но вы не загрузили / не связали данные снова для отображения обновленных значений.
0 голосов
/ 25 февраля 2011

Вам нужно снова связать данные из базы данных, чтобы получить новые изменения.вид сетки .bind ()

0 голосов
/ 25 февраля 2011

Убедитесь, что вы указали в своей статье PageLoad

** Изменение сделано ** Согласно @marc_s комментарий изменился, если (this.IsPostBack == true) на if (this.IsPostBack) this.IsPostBack является логическим значением.


if(this.IsPostBack)
{
//dont load page
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...