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. 尽管如此,我收到以下错误:
我知道这个错误通常是由于错误的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: 编辑3: 解决方法
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); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |