加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – Acess SQL查询缺少更多必需参数

发布时间:2020-12-15 08:46:45 所属栏目:百科 来源:网络整理
导读:在Web项目中,我正在尝试执行以下查询: SELECT ItemName as Name,ItemPicture as Picture,ItemHeroModif as Assistance,ItemTroopModif as Charisma,HerbCost as Herbs,GemCost as GemsFROM Item WHERE ItemId = @value0 有了断点,我可以看到我附加了@ value
在Web项目中,我正在尝试执行以下查询:
SELECT ItemName as Name,ItemPicture as Picture,ItemHeroModif as Assistance,ItemTroopModif as Charisma,HerbCost as Herbs,GemCost as Gems
FROM 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是一个专栏,不是吗?

解决方法

Access查询中的名称,项目和图片是 problem words.将它们括在方括号中:
SELECT ItemName as [Name],GemCost as Gems
FROM [Item] WHERE ItemID in (2);

由于包围这些名称仍然给您一个缺失的参数投诉,我请求您在Access的查询设计器中测试该查询.在该上下文中,Access提供了一个参数输入框,其中还包括Access将其解释为参数的单词.

您报告Access认为ItemPicture是一个参数.因此,通过在Access Design View中检查该表,您发现实际的字段名称是ItemImageURL.

SELECT ItemName as [Name],ItemImageURL as [Picture],GemCost as Gems
FROM [Item] WHERE ItemID in (2);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读