Работаю над редактированием, которое вносит возможные изменения в БД, но я продолжаю получать сообщение об ошибке CS0123: Нет перегрузки для «Insert_Click» соответствует делегату «EventHandler»

Это лицевая сторона моей страницы:
<div class = "div">
    <asp:Button style = "background-color: #007aff; width: 100%; padding: 5px" Text = "SAVE" OnClick = "Insert_Click" ID = "InsertID" runat = "server"/>
</div>
Это задняя часть с каждыми данными, необходимыми для доступа к БД в качестве параметров:
protected void Insert_Click(string StrImage, string StrMember, int intPersonalID, string StrFirstName, string StrLastName,
            string StrSex, string StrEmail, string StrPhoneNumber, string StrAddress, string StrDateAdded, string StrEmergencyContact, 
            string StrEmergencyRelationship, string StrEmergencyPhone)
        {
            SqlCommand command;
            SqlConnection connection;

            connection = new SqlConnection(constStringConnection);
            connection.Open();

            command = new SqlCommand("Learner_Db_Edit", connection);
            command.CommandType = CommandType.StoredProcedure;
            command.Connection = connection;

            command.Parameters.AddWithValue("Image", StrImage);
            command.Parameters.AddWithValue("Member", StrMember);
            command.Parameters.AddWithValue("PersonalID", intPersonalID);
            command.Parameters.AddWithValue("Firstname", StrFirstName);
            command.Parameters.AddWithValue("Lastname", StrLastName);
            command.Parameters.AddWithValue("Sex", StrSex);
            command.Parameters.AddWithValue("Email", StrEmail);
            command.Parameters.AddWithValue("PhoneNumber", StrPhoneNumber);
            command.Parameters.AddWithValue("Address", StrAddress);
            command.Parameters.AddWithValue("DateAdded", StrDateAdded);
            command.Parameters.AddWithValue("EmergencyContact", StrEmergencyContact);
            command.Parameters.AddWithValue("EmergencyRelationship", StrEmergencyRelationship);
            command.Parameters.AddWithValue("EmergencyPhone", StrEmergencyPhone);

            command.ExecuteNonQuery();
            connection.Close();
        }

и моя база данных

ALTER PROCEDURE [dbo].[Learner_Db_Edit]

@id int,
@NewImage varchar(50),
@NewMember varchar(50),
@NewPersonalID varchar(50),
@NewFirstName varchar(50),
@NewLastName varchar(50),
@NewSex varchar(50),
@NewEmail varchar(50),
@NewPhoneNumber varchar(50),
@NewAddress varchar(50),
@NewDate varchar(50),
@NewEmergencyContact varchar(50),
@NewEmergencyRelationship varchar(50),
@NewEMergencyPhone varchar(50)

AS
UPDATE [dbo].[Members]

SET 

Image = @NewImage,

Member = @NewMember,

PersonalID = @NewPersonalID,

Firstname = @NewFirstName,

Lastname = @NewLastName,

Sex = @NewSex,

Email = @NewEmail,

PhoneNumber = @NewPhoneNumber,

Address = @NewAddress,

DateAdded = @NewDate,

EmergencyContact = @NewEmergencyContact,

EmergencyRelationship = @NewEmergencyRelationship,

EmergencyPhone = @NewEMergencyPhone

WHERE ID = @id;

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

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
83
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

при двойном нажатии на кнопку или в разметке введите

По клику=

Когда вы нажмете знак «=», вы получите Intel-sense, чтобы создать это:

Вы ДОЛЖНЫ позволить Visual Studio создать код заглушки, и он ДОЛЖЕН ВСЕГДА соответствовать этому на 100%:

Итак, после двойного щелчка по кнопке (из дизайнера) или ввода выше «onclick =» и выбора «Создать новое событие»?

Вы получаете такой код-заглушку:

    protected void InsertID_Click(object sender, EventArgs e)
    {

    }

Вы не можете просто ни с того ни с сего ИЗМЕНИТЬ параметры события клика. Они должны и будут ВСЕГДА на 100% соответствовать указанному выше формату.

Таким образом, если вы покопаетесь и измените формат события нажатия кнопки, вы получите сообщение об ошибке, которое у вас есть.

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

Теперь, имея в виду вышеизложенное, ваш код клика будет примерно таким:

(но ОТКУДА берется «ID»? Я не вижу места, где вы устанавливаете, какой ID вы работаете ???

так это:

    protected void InsertID_Click(object sender, EventArgs e)
    {
        {
            using (SqlConnection conn = new SqlConnection("your con string"))
            {
                using (SqlCommand command = new SqlCommand("Learner_Db_Edit", conn))
                {
                    command.CommandType = CommandType.StoredProcedure;
                    command.Parameters.Add("@NewImage",SqlDbType.NVarChar).Value = StrImage;
                    command.Parameters.Add("@NewMember", SqlDbType.NVarChar).Value = StrMember;
                    command.Parameters.Add("@NewPersonalID", SqlDbType.NVarChar).Value = intPersonalID;
                    command.Parameters.Add("@NewFirstname", SSqlDbType.NVarChar).Value = trFirstName;
                    command.Parameters.Add("@NewLastname", SqlDbType.NVarChar).Value = StrLastName;
                    command.Parameters.Add("@NewSex", SqlDbType.NVarChar).Value =  StrSex;
                    command.Parameters.Add("@NewEmail", SqlDbType.NVarChar).Value = StrEmail;
                    command.Parameters.Add("@NewPhoneNumber", SqlDbType.NVarChar).Value = StrPhoneNumber;
                    command.Parameters.Add("@NewAddress", SqlDbType.NVarChar).Value = StrAddress;
                    command.Parameters.Add("@NewDateAdded", SqlDbType.NVarChar).Value = StrDateAdded;
                    command.Parameters.Add("@NewEmergencyContact", SqlDbType.NVarChar).Value = StrEmergencyContact;
                    command.Parameters.Add("@NewEmergencyRelationship", SqlDbType.NVarChar).Value = StrEmergencyRelationship;
                    command.Parameters.Add("@NewEmergencyPhone", SqlDbType.NVarChar).Value = StrEmergencyPhone;

                    command.ExecuteNonQuery();

                }
            }
        }
    }

ОДНАКО, вы не показываете, откуда берутся все эти строковые значения????

Возможно, нажатие кнопки должно получить + передать значения вашей процедуре со всеми этими значениями ??

Итак, выше приведен «воздушный код» и общая компоновка. Но вы еще не поделились, откуда берутся все эти строковые значения?

И также непонятно, почему в вашей базе данных и хранимой процедуре все столбцы имеют символьный тип, когда некоторые явно выглядят и должны быть типа int.

Другие вопросы по теме