2013-11-15 3 views
0

Я пытаюсь вставить данные в SQL Server, вызвав хранимую процедуру, но получаю сообщение об ошибке.Использование хранимых процедур в Vb.net

Процедура или функция 'USP_InsertNguoiDung' ожидает параметр '@idND', который не был предоставлен.

Моя хранимая процедура в SQL Server

create proc USP_InsertNguoiDung 
    @idND nvarchar(20), 
    @tenND nvarchar(100), 
    @matkhauND nvarchar(100), 
    @phanquyenND nvarchar(100) 
as 
begin 
    insert into nguoidung values(@idND, @tenND, @matkhauND, @phanquyenND) 
end 

Exec USP_InsertNguoiDung 'Me', N'Mẹ», '123', 'NguoiDung'

Мой код вызова хранимой процедуры

'Dim con As SqlConnection = _db.Getcon() 
    'con.Open() 
    'Cmd = New SqlCommand("USP_InsertPeople", con) 
    'Cmd.CommandType = CommandType.StoredProcedure 
    'Cmd.Parameters.Add(New SqlParameter("@id", ndDTO.NguoiDungID)) 
    'Cmd.Parameters.Add(New SqlParameter("@hoten", ndDTO.Hoten)) 
    'Cmd.Parameters.Add(New SqlParameter("@matkhau", ndDTO.Matkhau)) 
    'Cmd.Parameters.Add(New SqlParameter("@phanquyen", ndDTO.PhanQuyen)) 
    'Cmd.ExecuteReader() 
    'con.Close() 

Пожалуйста, помогите мне .. заблаговременно

+0

Вы можете включать фактический код VB, который вызывает хранимую процедуру, как, что вы включили в своем вопросе, выглядит как набор комментариев. Он вызывает неправильную хранимую процедуру, например ... – dav1dsm1th

ответ

0

Вы орфографические ошибки ваших параметров и имя sproc:

Dim con As SqlConnection = _db.Getcon() 
con.Open() 
Cmd = New SqlCommand("USP_InsertNguoiDung", con) 
Cmd.CommandType = CommandType.StoredProcedure 
Cmd.Parameters.Add(New SqlParameter("@idND", ndDTO.NguoiDungID)) 
Cmd.Parameters.Add(New SqlParameter("@tenND", ndDTO.Hoten)) 
Cmd.Parameters.Add(New SqlParameter("@matkhauND", ndDTO.Matkhau)) 
Cmd.Parameters.Add(New SqlParameter("@phanquyenND", ndDTO.PhanQuyen)) 
Cmd.ExecuteReader() 
con.Close() 
+0

спасибо, что вы меня ответили, но я думаю, что я правильно записываю параметры. – MremTy

+0

@MremTy: ** no **, вы ** не ** задали правильные параметры в коде VB.NET. Проверить снова. У вас есть '@ idND' в качестве первого параметра для вашей хранимой процедуры, но в вашем коде VB.NET вы используете' @ id' - это НЕ NOT ** правильно - это должно быть '@ idND' ... –

Смежные вопросы