2012-01-06 187 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

相關問題