首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我要得到OleDbException:“一个或多个所需参数没有值。”例外?

为什么我要得到OleDbException:“一个或多个所需参数没有值。”例外?
EN

Stack Overflow用户
提问于 2021-12-06 14:16:46
回答 1查看 136关注 0票数 -1

我试图使用参数化的OLEDB命令更新MS数据库。不过,每次我尝试时,它都会给我一个例外:System.Data.OleDb.OleDbException: 'No value given for one or more required parameters.'

从Access内部运行查询很好,但在我的WinForm程序中,由于某种原因它失败了。

代码语言:javascript
复制
string x =
                $"UPDATE CharMain " +
                $"SET CharMain.SpeciesAndStock = @SpeciesStock, " +
                    $"CharMain.Mig = @Might, " +
                    $"CharMain.Con = @Con, " +
                    $"CharMain.Dex = @Dex, " +
                    $"CharMain.Per = @Per, " +
                    $"CharMain.[Int] = @Int, " +
                    $"CharMain.Res = @Res, " +
                    $"CharMain.[Size] = @Size, " +
                    $"CharMain.Stride = @Stride " +
                $"WHERE CharMain.[ID] = @ID;";

            OleDbCommand command = new OleDbCommand(x, Flowsheet_101___Culture.conn);
            OleDbParameter[] param = new OleDbParameter[10];
            param[0] = new OleDbParameter("@SpeciesStock", speciesStock);
            param[1] = new OleDbParameter("@Might", array["Might"]);
            param[2] = new OleDbParameter("@Con", array["Constitution"]);
            param[3] = new OleDbParameter("@Dex", array["Dexterity"]);
            param[4] = new OleDbParameter("@Per", array["Perception"]);
            param[5] = new OleDbParameter("@Int", array["Intelligence"]);
            param[6] = new OleDbParameter("@Res", array["Resolve"]);
            param[7] = new OleDbParameter("@Size", size);
            param[8] = new OleDbParameter("@Stride", stride);
            param[9] = new OleDbParameter("@ID", Flowsheet_101___Culture.thisCharID);
            command.Parameters.Add(param[0]);
            command.Parameters.Add(param[1]);
            command.Parameters.Add(param[2]);
            command.Parameters.Add(param[3]);
            command.Parameters.Add(param[4]);
            command.Parameters.Add(param[5]);
            command.Parameters.Add(param[6]);
            command.Parameters.Add(param[7]);
            command.Parameters.Add(param[8]);
            command.Parameters.Add(param[9]);

            command.ExecuteNonQuery();
EN

回答 1

Stack Overflow用户

发布于 2021-12-06 14:40:45

我意识到我一直在试图插入显示在另一个表上的列中。我一直以为这个错误是关于缺少参数的,但原来我只是引用不存在的列。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70246900

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档