我正在尝试访问存储过程,并且收到错误消息:
过程或函数'getbug'需要参数'@bugID',这是未提供的。
这是我调用该程序的代码。
SqlCommand cmd = new SqlCommand("getbug", cn);
cmd.Parameters.Add(new SqlParameter("bugID", bugID));
bugID设置为1089(并且类型为int)
我无法弄清楚为什么这不起作用。
答案 0 :(得分:4)
试试这个
SqlCommand cmd = new SqlCommand("getbug", cn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@bugID", bugID));
答案 1 :(得分:2)
尝试将“@”添加到参数
SqlCommand cmd = new SqlCommand("getbug", cn);
cmd.Parameters.Add(new SqlParameter("@bugID", bugID));
答案 2 :(得分:1)
更多代码会有所帮助。这里有几个想法。
如果您正在调用存储过程,则需要指定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...
}
}