Процедура или функция «Registration_proc1» ожидает параметр «@p_fullname», который не был предоставлен - PullRequest
0 голосов
/ 30 апреля 2020
private static Registration InsertData(Registration register)
    {
        string connstr = @"Data Source=JUZAR-PC\SQLEXPRESS;Initial Catalog=Dbsaif;Integrated Security=True;MultipleActiveResultSets=True;Application Name=EntityFramework";

        DataTable dt = new DataTable();
        using (SqlConnection con = new SqlConnection(connstr))
        {
            using (SqlCommand cmd = new SqlCommand("Registration_proc1", con))
            {
                using (SqlDataAdapter da = new SqlDataAdapter())
                {
                    cmd.CommandType = CommandType.StoredProcedure;

                    cmd.Parameters.AddWithValue(@"p_fullname", SqlDbType.VarChar).Value = register.FullName;
                    cmd.Parameters.AddWithValue(@"p_email", SqlDbType.VarChar).Value = register.Email;
                    cmd.Parameters.AddWithValue(@"p_password", SqlDbType.VarChar).Value = register.Password;
                    cmd.Parameters.AddWithValue(@"p_cfnpswd", SqlDbType.VarChar).Value = register.ConfirmPassword;
                    cmd.Parameters.AddWithValue(@"p_city", SqlDbType.VarChar).Value = register.City;

                    da.SelectCommand = cmd;

                    con.Open();
                    da.Fill(dt);
                    con.Close();

                }
            }
        }
        if (dt != null && dt.Rows != null && dt.Rows.Count > 0)
        {
            register = (from DataRow dr in dt.Rows
                        select new Registration()
                        {
                            FullName = dr["Name"].ToString(),
                            Email = dr["Email"].ToString(),
                            Password = dr["Password"].ToString(),
                            ConfirmPassword = dr["ConfirmPassword"].ToString(),
                            City = dr["City"].ToString()
                        }).ToList().FirstOrDefault();


        }
        return register;
    } 

ХРАНИЛИЩАЯ ПРОЦЕДУРА ВЫШЕГО КОДА:

ALTER PROCEDURE [dbo].[Registration_proc1]     
@p_fullname varchar(50),
@p_email varchar(50),
@p_password varchar(8),
@p_cfnpswd varchar(8),
@p_city varchar(50)
AS
BEGIN       
    SET NOCOUNT ON;
                Insert into Registeration(Name,Email,Password,ConfirmPassword,City)   
           Values (@p_fullname,@p_email,@p_password,@p_cfnpswd,@p_city)  
END

Помогите мне с этим, пожалуйста:

1.Это вызывает исключение для сохраненного pro c параметра p_fullname в C# коде.

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

3. С большой вероятностью столкнулся с этой ошибкой при использовании SQL Сервер

1 Ответ

0 голосов
/ 30 апреля 2020

Не видя рассматриваемой хранимой процедуры, я бы сказал, что эта строка здесь:

  cmd.Parameters.AddWithValue(@"p_name", SqlDbType.VarChar).Value = register.FullName;

должна быть

  cmd.Parameters.AddWithValue(@"p_fullname", SqlDbType.VarChar).Value = register.FullName;

Так же, как говорится об исключении. Он ожидает параметр THAT, а вы его не отправляете.

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