无法获取 SQL 命令来识别添加的参数
我已经有一段时间没有使用基本的 SQL 命令了,我正在尝试将参数传递给存储过程并运行它。但是,当我运行代码时,出现“未提供”错误。
代码:
SqlConnection conn1 = new SqlConnection(DAL.getConnectionStr());
SqlCommand cmd1 = new SqlCommand("SProc_Item_GetByID", conn1);
cmd1.Parameters.Add(new SqlParameter("@ID", itemId));
conn1.Open();
cmd1.ExecuteNonQuery();
我不太确定为什么会失败。对于基本问题表示歉意,但我迷路了!
提前致谢。
I've not used basic SQL commands for a while and I'm trying to pass a param to a sproc and the run it. However when I run the code I get a "Not Supplied" error.
Code:
SqlConnection conn1 = new SqlConnection(DAL.getConnectionStr());
SqlCommand cmd1 = new SqlCommand("SProc_Item_GetByID", conn1);
cmd1.Parameters.Add(new SqlParameter("@ID", itemId));
conn1.Open();
cmd1.ExecuteNonQuery();
I'm not really sure why this would fail. Apologies for the basic question, but I'm lost!
Thanks in advance.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您应该将
CommandType
设置为StoredProcedure
,设置连接并使用Parameters.AddWithValue("@ID", itemID)
如果您想使用
Parameters.Add()
(已过时),这是您的操作方法(您也需要传递类型)这应该有效:
You should set the
CommandType
toStoredProcedure
, set the connection and useParameters.AddWithValue("@ID", itemID)
If you want to use
Parameters.Add()
(which is obsolete), here is how you do it (you need to pass the type too)This should work:
为了使您的代码变得更好,请将
SqlConnection
和SqlCommand
放入using
语句中,以便它们在结束时自动释放使用块:And to make your code even better, put your
SqlConnection
andSqlCommand
intousing
statements, so that they'll be freed automatically at the end of the using block: