微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

在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);

原文地址:https://www.jb51.cc/csharp/244832.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐