我试图使用参数化的OLEDB命令更新MS数据库。不过,每次我尝试时,它都会给我一个例外:System.Data.OleDb.OleDbException: 'No value given for one or more required parameters.'
从Access内部运行查询很好,但在我的WinForm程序中,由于某种原因它失败了。
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();发布于 2021-12-06 14:40:45
我意识到我一直在试图插入显示在另一个表上的列中。我一直以为这个错误是关于缺少参数的,但原来我只是引用不存在的列。
https://stackoverflow.com/questions/70246900
复制相似问题