
SELECT Itemname as name,ItemPicture as Picture,ItemHeroModif as Assistance,ItemTroopModif as Charisma,HerbCost as Herbs,GemCost as GemsFROM Item WHERE ItemID = @value0
有了断点,我可以看到我附加了@ value0的值,2.
尽管如此,我收到以下错误:
No value given for one or more required parameters.
我知道这个错误通常是由于错误的sql语法而产生的.我做了什么有什么不对吗?
编辑:
附件代码:
var madeForCommand = "SELECT Itemname as name,ItemPicture as [Picture],GemCost as Gems FROM Item WHERE "; oleDbCommand command = new oleDbCommand(); for (int ii = 0; ii < items.Count; ii++)// items is a List of items with IDs I want to get from the query. { madeForCommand += "ItemID =@value"+ii+" OR "; } madeForCommand = madeForCommand.Substring(0,madeForCommand.Length - 4); // making sure I trim the final or; In the case I shown,it's just one item,so there are none at all. 后来:
oleDbCommand forOperations = new oleDbCommand(madeForCommand,_dbConnection); //_dbConnection is the connection to the database,it seems to work pretty well.for (int ii = 0; ii < items.Count; ii++) { string attach = "@value" + ii; command.Parameters.AdDWithValue(attach,items[ii].ID); } 我很确定项目[ii] .ID很好,断点显示它等于2并且附件顺利.
编辑2:
我编写了Krish和Hans建议的代码,我得到以下查询,没有任何附件:SELECT Itemname为[name],ItemPicture为Picture,ItemHeroModif为Assistance,ItemTroopModif为Charisma,HerbCost为Herbs,GemCost为Gems FROM [项目] WHERE((2)中的ItemID);如果它改变了什么,我仍然会得到同样的错误.
编辑3:
在Access中执行查询要求我给参数“ItemPicture”赋值……奇数; ItemPicture是一个专栏,不是吗?
SELECT Itemname as [name],GemCost as GemsFROM [Item] WHERE ItemID in (2);
由于包围这些名称仍然给您一个缺失的参数投诉,我请求您在Access的查询设计器中测试该查询.在该上下文中,Access提供了一个参数输入框,其中还包括Access将其解释为参数的单词.
您报告Access认为ItemPicture是一个参数.因此,通过在Access Design VIEw中检查该表,您发现实际的字段名称是ItemImageURL.
SELECT Itemname as [name],ItemImageURL as [Picture],GemCost as GemsFROM [Item] WHERE ItemID in (2);总结
以上是内存溢出为你收集整理的c# – Acess SQL查询缺少更多必需参数全部内容,希望文章能够帮你解决c# – Acess SQL查询缺少更多必需参数所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)