Ваша строка SQL имеет шесть параметров
**:DFrom** AND **:DTo**
And (CLIENT_NAME = **:client** or **:client** is null)
and (POLICY_PRODUCT = **:product** or **:product**
Таким образом, вы должны указать шесть параметров:
cmd.Parameters.Add("DFrom", OracleDbType.Date).Value = DtpFrom.Value
cmd.Parameters.Add("DTo", OracleDbType.Date).Value = DtpTo.Value
cmd.Parameters.Add("Client", OracleDbType.Varchar2).Value = IIf(String.IsNullOrEmpty(CmbClient.Text), DBNull.Value, CmbClient.Text)
cmd.Parameters.Add("Client", OracleDbType.Varchar2).Value = IIf(String.IsNullOrEmpty(CmbClient.Text), DBNull.Value, CmbClient.Text)
cmd.Parameters.Add("Product", OracleDbType.Varchar2).Value = IIf(String.IsNullOrEmpty(CmbProduct.Text), DBNull.Value, CmbProduct.Text)
cmd.Parameters.Add("Product", OracleDbType.Varchar2).Value = IIf(String.IsNullOrEmpty(CmbProduct.Text), DBNull.Value, CmbProduct.Text)
Я не знаю, разрешено / требуется ли @
для имени параметра. Тогда вы должны удалить ToShortDateString
. Параметр объявлен как OracleDbType.Date
, поэтому просто укажите значение DateTime
, вам не нужно рассматривать какие-либо темы формата - это главное преимущество использования параметров связывания вместо того, чтобы помещать значения в виде строк.