2012-01-06 158 views
1

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

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

异常详细信息:System.InvalidCastException:对象必须实现 IConvertible。

错误详细线279:
da.InsertCommand.Parameters.Add( “@合计”,SqlDbType.Int)。价值= 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

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; 
+0

谢谢你Jon Skeet它的工作 – 2012-01-06 07:26:37

2

使用DropDownList3.SelectedItem.TextDropDownList3.SelectedItem.Value将其分配到一个Value

相关问题