Я работаю над приложением, которое позволяет перечислять фильмы, а также редактировать, вставлять и удалять их.В БД у меня есть три таблицы (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