对象必须实现IConvertible [英] Object must implement IConvertible

查看:2820
本文介绍了对象必须实现IConvertible的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述


  

对象必须实现IConvertible。结果
  说明:执行当前Web请求的执行过程中发生未处理的异常。


请查看有关错误的详细信息的堆栈跟踪以及它起源于code。


  

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


  
  

错误详细线路279:结果
  da.InsertCommand.Parameters.Add(@共,SqlDbType.Int).value的=
  txttotal.Text; 280线:con1.Open(); 281线:结果
  da.InsertCommand.ExecuteNonQuery();


code:

  SqlDataAdapter的大=新的SqlDataAdapter();
    da.InsertCommand =新的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_NAMESqlDbType.VarChar).value的= DropDownList2.SelectedItem;
    da.InsertCommand.Parameters.Add(@产品类型,SqlDbType.VarChar).value的= DropDownList1.SelectedItem;
    da.InsertCommand.Parameters.Add(@重,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(@量,SqlDbType.Int).value的= txtquantity.Text;
    da.InsertCommand.Parameters.Add(@共,SqlDbType.Int).value的= txttotal.Text;
con1.Open();
da.InsertCommand.ExecuteNonQuery();


解决方案

<一个href=\"http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.listcontrol.selecteditem.aspx\"相对=nofollow> ListControl.SelectedItem 返回列表项 - 它并没有太大的感为一个参数的值是一个列表项本身,而是该项目的值或文本。你可能想是这样的:

  da.InsertCommand.Parameters
  。新增(@的ProductID,SqlDbType.VarChar).value的= DropDownList3.SelectedItem.Text;

  da.InsertCommand.Parameters
  。新增(@的ProductID,SqlDbType.VarChar).value的= DropDownList3.SelectedItem.Value;

Object must implement IConvertible.
Description: An unhandled exception occurred during the execution of the current web request.

Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.InvalidCastException: Object must implement IConvertible.

Error Detail Line 279:
da.InsertCommand.Parameters.Add("@Total", SqlDbType.Int).Value = txttotal.Text; Line 280: con1.Open(); Line 281:
da.InsertCommand.ExecuteNonQuery();

Code:

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();

解决方案

ListControl.SelectedItem returns a ListItem - and it doesn't make much sense for the value of a parameter to be a list item itself, but instead the item's value or text. You probably want something like:

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

or

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

这篇关于对象必须实现IConvertible的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆