Member 14566485 Ответов: 1

Я получаю эту ошибку.. Системы.данных.sqlclient как.sqlexception в


System.Data.SqlClient.SqlException: 'The parameterized query '(@UserName nvarchar(4000),@Email nvarchar(4000))UPDATE AspNetUse' expects the parameter '@UserName', which was not supplied.'


В контроллере редактирования я получаю эту ошибку. Не могли бы вы найти и помочь мне?

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

public    ActionResult Edit(GetUserData getUserdata)
            {
                string query = "UPDATE AspNetUsers SET Email=@Email where UserName=@UserName";
                string DefaultConnection = ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString;
                using (SqlConnection con = new SqlConnection(connectionString))
                {
                    using (SqlCommand cmd = new SqlCommand(query))
                    {
                        cmd.Parameters.AddWithValue("@UserName", getUserdata.UserName);
                        cmd.Parameters.AddWithValue("@Email", getUserdata.Email);
                        cmd.Connection = con;
                        con.Open();
                        cmd.ExecuteNonQuery();
                        con.Close();
                    }
                }
                return Edit(getUserdata);
            }

1 Ответов

Рейтинг:
5

OriginalGriff

Прочтите сообщение об ошибке, оно очень точное.

The parameterized query '(@UserName nvarchar(4000),@Email nvarchar(4000))UPDATE AspNetUse' expects the parameter '@UserName', which was not supplied.

Так что это означает, что эта линия:
cmd.Parameters.AddWithValue("@UserName", getUserdata.UserName);
передает нулевое значение, так как любое другое значение не дало бы ошибки.

Поэтому используйте отладчик и посмотрите, что именно содержит ваш экземпляр getUserData, а затем используйте трассировку стека, чтобы проследить цепочку вызовов и выяснить, почему.

Извините, но мы не можем сделать это для вас!


Member 14566485

как использовать трассировку стека для этого

OriginalGriff

https://www.google.com/search-что?q=how+to+use+stack+trace+visual+studio&oq=how+to+use+stack+trace+visual+studio&aqs=chrome..69i57j69i64.1031j0j9&sourceid=chrome&ie=UTF-8

Member 14566485

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

OriginalGriff

Нет - у меня нет ваших данных, я понятия не имею, как их использовать, и я потратил бы слишком много времени, работая над всем этим.

Вы написали программное обеспечение, вы знаете, что оно должно делать и как оно должно работать - я даже не знаю, как заставить приложение достичь этого метода, а тем более того, что оно ожидает передать ему, когда оно туда попадет!

Да ладно - тестирование и отладка-это основная часть вашего времени в разработке: а привыкание к тому, как работает отладчик и что он может сделать, чтобы облегчить вашу жизнь (подсказка: намного, намного проще) - это время, потраченное впустую, а не потраченное впустую. Потраченное впустую время-это ожидание, пока другие люди сделают это за вас, когда у них нет реальной информации для работы ... так что попробуй! Это не сложно, и это действительно того стоит!

Member 14566485

ладно