我试图访问一个存储过程,我得到一个错误,指出:的SqlParameter不正常
过程或函数“getbug”需要参数“@bugID”,但未提供。
这是我的代码来调用该过程。
SqlCommand cmd = new SqlCommand("getbug", cn);
cmd.Parameters.Add(new SqlParameter("bugID", bugID));
错误ID设置为1089(和类型为int)
我想不通,为什么这是不行的。
我试图访问一个存储过程,我得到一个错误,指出:的SqlParameter不正常
过程或函数“getbug”需要参数“@bugID”,但未提供。
这是我的代码来调用该过程。
SqlCommand cmd = new SqlCommand("getbug", cn);
cmd.Parameters.Add(new SqlParameter("bugID", bugID));
错误ID设置为1089(和类型为int)
我想不通,为什么这是不行的。
试试这个
SqlCommand cmd = new SqlCommand("getbug", cn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@bugID", bugID));
尝试添加 “@” 到参数
SqlCommand cmd = new SqlCommand("getbug", cn);
cmd.Parameters.Add(new SqlParameter("@bugID", bugID));
更多的代码会有所帮助。这里有几个想法。
如果您正在调用存储过程,则需要指定CommandType
。此外,您可以使用AddWithValue
方法缩短您的代码。
using (var cn = new SqlConnection("your connection string"))
{
using (var cmd = new SqlCommand("getbug", cn))
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@bugID", bugID);
//etc...
}
}
只需要注意,向参数添加“@”不能解决问题。 – 2010-04-04 23:07:45
如果添加@不起作用,您可以向我们展示更多代码。你这样做的方式*应该*工作 – CResults 2010-04-04 23:08:58
啊,是否加入cmd.CommandType = CommandType.StoredProcedure工作?我认为它默认为.Text – CResults 2010-04-04 23:10:54