Обновление выписки на веб-сайте ASP.Net - PullRequest
0 голосов
/ 05 июня 2019

Я пытаюсь создать заявление об обновлении для назначения, где Пользователь может изменять информацию своей учетной записи. Всякий раз, когда я пытаюсь это сделать, я получаю сообщение об ошибке «Синтаксическая ошибка в операторе обновления». Я адаптирую код для генерации этого оператора из другого назначения, где код работает, поэтому я уверен, что мне не хватает некоторых мелких деталей. Ниже приведен код, который я имею для нажатия кнопки, который запускает метод, который создает оператор обновления, а также сам метод.

Нажатие кнопки:

protected void btnConfirm_Click(object sender, EventArgs e)
    {

        bool userUpdateError = false;


        string tempPath = Server.MapPath("~/App_Data/Programmaholics.mdb");
        clsDataLayer myDataLayer = new clsDataLayer(tempPath);


        try
        {
            myDataLayer.UpdateUser(lblUsername.Text, lblCity.Text, lblState.Text, lblFavorite.Text, lblLeastFavorite.Text, lblDate.Text, Convert.ToInt32(UserID.Text));
        }
        catch (Exception error)
        {
            userUpdateError = true;
            string message = "Error updating user, please check form data. ";
            Master.UserFeedBack.Text = message + error.Message;
        }

        if (!userUpdateError)
        {
            Master.UserFeedBack.Text = "Customer Updated Successfully.";
        }
    }

Метод обновления:

 public void UpdateUser(string userName, string city, string state, string favorite, string leastFavorite, string date, int userID)
    {

        dbConnection.Open();


        string sqlStmt = "UPDATE tblUser SET Username = @user, " +
          "City = @city, " +
          "State = @state, " +
          "Favorite = @favorite, " +
          "LeastFavorite @least, " +
          "DateLast = @date " +
          "WHERE (tblUser.UserID = @id)";

        OleDbCommand dbCommand = new OleDbCommand(sqlStmt, dbConnection);


        OleDbParameter param = new OleDbParameter("@user", userName);
        dbCommand.Parameters.Add(param);

        dbCommand.Parameters.Add(new OleDbParameter("@city", city));
        dbCommand.Parameters.Add(new OleDbParameter("@state", state));
        dbCommand.Parameters.Add(new OleDbParameter("@favorite", favorite));
        dbCommand.Parameters.Add(new OleDbParameter("@least", leastFavorite));
        dbCommand.Parameters.Add(new OleDbParameter("@date", date));
        dbCommand.Parameters.Add(new OleDbParameter("@id", userID));


        dbCommand.ExecuteNonQuery();


        dbConnection.Close();
    }

Ответы [ 2 ]

1 голос
/ 05 июня 2019

измените "WHERE (tblUser.UserID = @id)" на "WHERE UserID = @id", потому что вы пытаетесь обновить ту же таблицу, в этом нет необходимости.

string sqlStmt = "UPDATE tblUser SET Username = @user, " +
          "City = @city, " +
          "State = @state, " +
          "Favorite = @favorite, " +
          "LeastFavorite @least, " +
          "DateLast = @date " +
          "WHERE UserID = @id";
0 голосов
/ 05 июня 2019

Ответ был в Комментарий Арулкумара :

= отсутствует в "LeastFavorite @least, " +,, должно быть "LeastFavorite = @least, " +

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...