Я работаю над приложением, которое позволяет перечислить фильмы, а также редактировать, вставлять и удалять их. В db у меня есть три таблицы (Movie, Genre и MovieGenre), и эта проблема связана с добавлением жанра в фильм (добавив в таблицу MovieGenre, в котором хранятся треки жанров фильмов).Слишком много аргументов
Ниже приведен соответствующий код, а также исключение. Я просто не могу понять, почему я получаю это сообщение об ошибке, потому что я использую правильное количество аргументов, поскольку я могу видеть это в коде C# при вызове sproc.
Может кто-нибудь увидеть, в чем проблема?
Исключение: Процедура или функция usp_InsertMovieGenre содержит слишком много аргументов.
Сведения об исключении: System.Data.SqlClient.SqlException: Процедура или функция usp_InsertMovieGenre содержит слишком много аргументов.
C# код:
public void InsertMovieGenre(MovieGenre movieGenre) {
using (SqlConnection conn = CreateConnection()) {
try {
SqlCommand cmd = new SqlCommand("dbo.usp_InsertMovieGenre", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@MovieID", SqlDbType.Int, 4).Value = movieGenre.MovieID;
cmd.Parameters.Add("@GenreID", SqlDbType.Int, 4).Value = movieGenre.MovieGenreID;
cmd.Parameters.Add("@MovieGenreID", SqlDbType.Int, 4).Direction = ParameterDirection.Output;
conn.Open();
cmd.ExecuteNonQuery();
movieGenre.MovieID = (int)cmd.Parameters["@MovieGenreID"].Value;
}
catch {
}
}
}
sproc:
ALTER PROCEDURE usp_InsertMovieGenre
@GenreID varchar(500),
@MovieID int
AS
BEGIN
INSERT INTO MovieGenre (GenreID, MovieID)
VALUES (@GenreID, @MovieID);
END
GO
'@ MovieGenreID' не является параметром. –
Где определение @MovieGenreID в вашей процедуре магазина? –