缺少一个参数。 [参数序数=8]
Posted
技术标签:
【中文标题】缺少一个参数。 [参数序数=8]【英文标题】:A Parameter is missing. [Parameter ordinal =8] 【发布时间】:2021-08-05 22:27:51 【问题描述】:Query = "update Product set ProductName=@ProductName,Specification=@Specification" +
",DepartmentId=@DepartmentId,UnitId=@UnitId,TCategoryId=@TCategoryId,HSNId=@HSNId,SGroupId=@SGroupId" + " where ProductCode=@ProductCode";
using (SqlCeConnection con = new SqlCeConnection(strConnection))
using (SqlCeCommand cmd = new SqlCeCommand(Query, con))
cmd.Parameters.Clear();
cmd.Parameters.AddWithValue("@ProductCode", dgvAdjustment.Rows[i].Cells[0].Value.ToString().ToUpper());
cmd.Parameters.AddWithValue("@ProductName", dgvAdjustment.Rows[i].Cells[1].Value.ToString().ToUpper());
cmd.Parameters.AddWithValue("@Specification", strSpecification);
cmd.Parameters.AddWithValue("@DepartmentId", strDepartmentId);
cmd.Parameters.AddWithValue("@UnitId", strUnitId);
cmd.Parameters.AddWithValue("@TCategoryId", strTCategoryId);
cmd.Parameters.AddWithValue("@HSNId", strHSNId);
cmd.Parameters.AddWithValue("@SGroupId", strSGroupId);
con.Open();
cmd.ExecuteNonQuery();
【问题讨论】:
您需要传递DBNull.Value
而不是null
,因此对于每个参数,您可以执行strSGroupId ?? (object) DBNull.Value
之类的操作。而你shouldn't use AddWIthValue
anyway,明确指定你的参数类型和长度。另外cmd.Parameters.Clear();
是不必要的,它是一个新的命令对象。
请添加正确的解释和代码 sn-ps 或您面临的错误。
@Charlieface 不起作用
@PrathameshMore 如上所述,先生
@Charlieface 先生,虽然它通过了错误,但它已成功更新
【参考方案1】:
Query = "更新产品集 ProductName=@ProductName,Specification=@Specification" + ",DepartmentId=@DepartmentId,UnitId=@UnitId,TCategoryId=@TCategoryId,HSNId=@HSNId,SGroupId=@SGroupId" + " 其中 ProductCode=@ProductCode"; if (Properties.Settings.Default.isCompact) 使用 (SqlCeConnection con = new SqlCeConnection(strConnection)) 使用 (SqlCeCommand cmd = new SqlCeCommand(Query, con)) cmd.Parameters.Clear();
cmd.Parameters.AddWithValue("@ProductCode", dgvAdjustment.Rows[i].Cells[0].Value.ToString().ToUpper());
cmd.Parameters.AddWithValue("@ProductName", dgvAdjustment.Rows[i].Cells[1].Value.ToString().ToUpper());
cmd.Parameters.AddWithValue("@Specification", strSpecification);
cmd.Parameters.AddWithValue("@DepartmentId", strDepartmentId);
cmd.Parameters.AddWithValue("@UnitId", strUnitId);
cmd.Parameters.AddWithValue("@TCategoryId", strTCategoryId);
cmd.Parameters.AddWithValue("@HSNId", strHSNId);
cmd.Parameters.AddWithValue("@SGroupId", strSGroupId);
con.Open();
cmd.ExecuteNonQuery();
else
using (SqlConnection con = new SqlConnection(strConnection))
using (SqlCommand cmd = new SqlCommand(Query, con))
cmd.Parameters.Clear();
cmd.Parameters.AddWithValue("@ProductCode", dgvAdjustment.Rows[i].Cells[0].Value.ToString().ToUpper());
cmd.Parameters.AddWithValue("@ProductName", dgvAdjustment.Rows[i].Cells[1].Value.ToString().ToUpper());
cmd.Parameters.AddWithValue("@Specification", strSpecification);
cmd.Parameters.AddWithValue("@UnitId", strUnitId);
cmd.Parameters.AddWithValue("@DepartmentId", strDepartmentId);
cmd.Parameters.AddWithValue("@TCategoryId", strTCategoryId);
cmd.Parameters.AddWithValue("@HSNId", strHSNId);
cmd.Parameters.AddWithValue("@SGroupId", strSGroupId);
con.Open();
cmd.ExecuteNonQuery();
// DbUpdate(Query);
MessageBox.Show("Successfully updated", "ESoft");
loadItems();
loadDataGrid();
catch (Exception ex)
MessageBox.Show(ex.Message);
我已经调用了 cmd.ExecuteNonQuery();另一次在 DbUpdate(Query) 中;
【讨论】:
所以我评论了 DbUpdate(Query);以上是关于缺少一个参数。 [参数序数=8]的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 8:[路线:students.update]缺少必需的参数
使用 Mac OS X 10.8.5 Xcode 5.0.2 配置错误:clang:错误:缺少“-V”的参数(预期 1 个值)clang:错误:没有输入文件