Member 10850253 Ответов: 2

Обновите значение в базе данных mysql в ASP.NET


Я могу хранить данные в базе данных, но не могу обновлять значения в ней. У меня есть таблица с 5 значениями, которые являются именем, пользователем, паролем, заголовком и проектом, и мне нужно иметь возможность обновить пароль, просто введя пользователя.
Я попробовал этот код:
String connString = System.Configuration.ConfigurationManager.ConnectionStrings["web"].ToString();
        conn = new MySql.Data.MySqlClient.MySqlConnection(connString);
        conn.Open();
        //queryStr = "";
        cmd = conn.CreateCommand();
        cmd.CommandType = System.Data.CommandType.Text;
        queryStr = "UPDATE meal.claves set usuario='" + user.Text+"where clave ='"+pass+"'";
        cmd = new MySql.Data.MySqlClient.MySqlCommand("update meal.claves Set usuario=@user,clave=@pass");
        //cmd = new MySql.Data.MySqlClient.MySqlCommand(queryStr, conn);
        //cmd.ExecuteReader();
            cmd.ExecuteNonQuery();
        
        conn.Close();

Получил ошибку, говорящую, что соединение должно быть открытым и действительным.

Что я уже пробовал:

Я попробовал код в этом видео:
https://www.youtube.com/watch?v=sggbk2ES8DM

2 Ответов

Рейтинг:
2

CHill60

Ключ

cmd = new ... 
. Ваш новый cmd не имеет подключения.
Кроме того, не объединяйте строки для формирования командных строк sql...используйте параметры команд


Рейтинг:
1

Patrice T

queryStr = "UPDATE meal.claves set usuario='" + user.Text+"where clave ='"+pass+"'";

Не решение вашего вопроса, а еще одна проблема, которая у вас есть.
Никогда не создавайте SQL-запрос путем объединения строк. Рано или поздно вы сделаете это с помощью пользовательских вводов, и это откроет дверь к уязвимости под названием "SQL-инъекция", она опасна для вашей базы данных и подвержена ошибкам.
Одна кавычка в имени - и ваша программа выйдет из строя. Если пользователь вводит имя, например "Брайан О'Коннер", может привести к сбою вашего приложения, это уязвимость SQL-инъекции, и сбой-это наименьшая из проблем, вредоносный пользовательский ввод, и он продвигается к командам SQL со всеми учетными данными.
SQL-инъекция - Википедия[^]
SQL-инъекция[^]
Атаки SQL-инъекций на примере[^]
PHP: SQL-инъекция - руководство пользователя[^]
Шпаргалка по предотвращению инъекций SQL - OWASP[^]