Я запускаю веб-приложение и хочу обновить базу данных профилей пользователей SQL Server с помощью кода C #, но независимо от того, что я делаю, я не могу заставить его работать - PullRequest
2 голосов
/ 04 ноября 2019

Я пытаюсь создать страницу MyAccount для веб-сайта, который я создаю, используя ASP.NET и Bootstrap с html и C #, работающими в фоновом режиме для наших объектов. Мы используем SQL Server для запуска наших баз данных, и у меня много проблем с получением обновлений. Я использую тестовый профиль пользователя. Я жестко вставил своего партнера в систему, так как я еще не запрограммировал систему создания учетной записи, только логин.

Проблема заключается в том, что при запуске кода обновления база данных SQL Server не обновляется с использованием переданной информации. Я не получаю никаких исключений и знаю, что моя строка подключения работает, поскольку я использую ее для входа и перетаскивания содержимого моей базы данных в текстовые поля на главном экране. Из-за этого я понятия не имею, почему он не обновляется, и я чувствую себя очень потерянным.

Я удалил биты самой строки подключения, так как этот сервер не мой, и я не хочу личного подключения моего профессораи учетные данные для входа в Интернет.

Мой ярлык отладки, выполняющий запрос, сообщает мне каждый раз, когда я пытаюсь изменить переменную состояния для элемента, на который была произведена 1 строка.

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

Username: MarshallE  
Email: Test1234  
Password: Test1234!  
First Name: Marshall  
Last Name: Emmer  
Properties Rented: Prime Place  
Universities Attended Oklahoma State University  
State: N/A (My partner just added this and didn't update the profile)

Вот мой код, который я использовал, чтобы попытаться обновить вещь:

protected void btnRegAcctUpdate_Click(object sender, EventArgs e)
{
    // This unit's job is to update the database of the specified user with the info in the text boxes
    // Make sure the password fields are the same
    if (txtAcctPass1.Text == txtAcctPass2.Text)
    {
        lblAcctDebug.Text = "";

        SqlConnection MyConnection = new SqlConnection();
        MyConnection.ConnectionString = "Server= (N/A ;Database=F19_groupRoss;User Id=groupRoss;Password = (N/A);";

        string MyUpdateStatement;
        MyUpdateStatement = "UPDATE dbo.UserID SET Email = @Email, Password = @Password, FirstName = @FirstName, LastName = @LastName, Universities = @University, Town = @Town, State = @State" + " WHERE UserID = @UserID";

        SqlCommand MySqlCmd = new SqlCommand(MyUpdateStatement, MyConnection);

        // These are the values we will be overriding the database with
        MySqlCmd.Parameters.AddWithValue("@UserID", (string)Session["UserID"]);
        MySqlCmd.Parameters.AddWithValue("@FirstName", txtAcctFirstName.Text);
        MySqlCmd.Parameters.AddWithValue("@LastName", txtAcctLastName.Text);
        MySqlCmd.Parameters.AddWithValue("@Email", txtAcctEmail.Text);
        MySqlCmd.Parameters.AddWithValue("@Password", txtAcctPass1.Text);
        MySqlCmd.Parameters.AddWithValue("@State", txtAcctState.Text);
        MySqlCmd.Parameters.AddWithValue("@Town", txtAcctTown.Text);
        MySqlCmd.Parameters.AddWithValue("@University", txtAcctUniversity.Text);

        // Open the connection
        MyConnection.Open();

        int rows = MySqlCmd.ExecuteNonQuery();
        lblDebug2.Text = "Rows affected: " + rows;

        MyConnection.Close();
    }
    else
    {
        lblAcctDebug.Text = "Error: Please ensure the text in the new password and password confirmation boxes are identical";
    }
}

Если кто-нибудь может сказать мне, что я делаю неправильно, я ДЕЙСТВИТЕЛЬНО оценил бы это!

1 Ответ

0 голосов
/ 04 ноября 2019

Попробуйте добавить свои параметры следующим образом:

MysqlCmd.Parameters.Add(New Parameter(@FirstName, txtAcctFirstName.text));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...