1

对象必须实现 IConvertible。
说明:执行当前 Web 请求期间发生未处理的异常。

请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

异常详细信息: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();
4

2 回答 2

4

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;
于 2012-01-06T06:59:03.617 回答
2

使用DropDownList3.SelectedItem.TextDropDownList3.SelectedItem.Value将其分配给Value.

于 2012-01-06T07:26:24.980 回答