【问题标题】:A Parameter is missing. [Parameter ordinal =8]缺少一个参数。 [参数序数=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 先生,虽然它通过了错误,但它已成功更新

标签: c# sql tsql


【解决方案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);
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-07-20
  • 2021-06-09
  • 2018-09-23
  • 1970-01-01
  • 2021-11-06
  • 1970-01-01
相关资源
最近更新 更多