Объект должен реализовывать IConvertible - PullRequest
1 голос
/ 06 января 2012

Объект должен реализовывать IConvertible.
Описание: во время выполнения текущего веб-запроса произошло необработанное исключение.

Пожалуйста, просмотрите трассировку стека для получения дополнительной информации об ошибке и ее возникновении в коде.

Сведения об исключении: System.InvalidCastException: объект должен реализовывать IConvertible.

Строка детализации ошибки 279:
da.InsertCommand.Parameters.Add ("@ Total", SqlDbType.Int) .Value = txttotal.Text; Строка 280: con1.Open (); Строка 281:
da.InsertCommand.ExecuteNonQuery ();

Код:

SqlDataAdapter da = new SqlDataAdapter();
    da.InsertCommand = new SqlCommand("Insert Into customer_order(ProductID,product_Name,Product_Type,Weight,Unit_Price,No_Of_Master_Pack,Master_Pack_Price,Quantity,Total)VALUES(@ProductID,@product_Name,@Product_Type,@Weight,@Unit_Price,@No_Of_Master_Pack,@Master_Pack_Price,@Quantity,@Total)", con1);
    da.InsertCommand.Parameters.Add("@ProductID",SqlDbType.VarChar).Value=DropDownList3.SelectedItem;
    da.InsertCommand.Parameters.Add("@product_Name",SqlDbType.VarChar).Value=DropDownList2.SelectedItem;
    da.InsertCommand.Parameters.Add("@Product_Type", SqlDbType.VarChar).Value = DropDownList1.SelectedItem;
    da.InsertCommand.Parameters.Add("@Weight",SqlDbType.Int).Value=txtwgt.Text;
    da.InsertCommand.Parameters.Add("@Unit_Price",SqlDbType.Int).Value=txtmrpsinglepack.Text;
    da.InsertCommand.Parameters.Add("@No_Of_Master_Pack",SqlDbType.Int).Value=txtnoofmasterpack.Text;
    da.InsertCommand.Parameters.Add("@Master_Pack_Price",SqlDbType.Int).Value=txtmrpmaster.Text;
    da.InsertCommand.Parameters.Add("@Quantity",SqlDbType.Int).Value=txtquantity.Text;
    da.InsertCommand.Parameters.Add("@Total", SqlDbType.Int).Value = txttotal.Text;
con1.Open();
da.InsertCommand.ExecuteNonQuery();

Ответы [ 2 ]

4 голосов
/ 06 января 2012

ListControl.SelectedItem возвращает ListItem - и не имеет смысла, чтобы значение параметра представляло собой элемент списка, а вместо этого значение элемента или текст. Вы, вероятно, хотите что-то вроде:

da.InsertCommand.Parameters
  .Add("@ProductID",SqlDbType.VarChar).Value = DropDownList3.SelectedItem.Text;

или

da.InsertCommand.Parameters
  .Add("@ProductID",SqlDbType.VarChar).Value = DropDownList3.SelectedItem.Value;
2 голосов
/ 06 января 2012

используйте DropDownList3.SelectedItem.Text или DropDownList3.SelectedItem.Value, чтобы присвоить его Value.

...