首页 / C# / c# – 指定的参数太多
c# – 指定的参数太多
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c# – 指定的参数太多,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1619字,纯文字阅读大概需要3分钟。
内容图文
![c# – 指定的参数太多](/upload/InfoBanner/zyjiaocheng/758/080a339f424e4ba2a5061a7430b2a6d9.jpg)
我正在开发一个应用程序,它允许人们列出电影以及编辑,插入和删除它们.在db我有三个表(Movie,Genre和MovieGenre),这个问题与向电影添加一个类型有关(通过添加到MovieGenre表,它保存了电影类型的轨迹).
下面是相关代码,以及抛出的异常.我只是无法弄清楚为什么我收到此错误消息,因为我使用正确数量的参数,因为我可以在调用sproc时在c#代码中看到它.
有人能看出这里的问题是什么吗?
例外:
过程或函数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 {
}
}
}
存储过程:
ALTER PROCEDURE usp_InsertMovieGenre
@GenreID varchar(500),
@MovieID int
AS
BEGIN
INSERT INTO MovieGenre (GenreID, MovieID)
VALUES (@GenreID, @MovieID);
END
GO
解决方法:
因为这条线的错误
cmd.Parameters.Add("@MovieGenreID", SqlDbType.Int, 4).Direction = ParameterDirection.Output;
解决修改存储的procdeurre
存储过程:
ALTER PROCEDURE usp_InsertMovieGenre
@GenreID varchar(500),
@MovieID int,
@MovieGenreID int output
AS
BEGIN
INSERT INTO MovieGenre (GenreID, MovieID)
VALUES (@GenreID, @MovieID);
SELECT @MovieGenreID = @@identity
END
GO
内容总结
以上是互联网集市为您收集整理的c# – 指定的参数太多全部内容,希望文章能够帮你解决c# – 指定的参数太多所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。