用了,还是不行。请赐教
“/021111”应用程序中的服务器错误。
--------------------------------------------------------------------------------输入字符串的格式不正确。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.FormatException: 输入字符串的格式不正确。源错误: 
行 87:  txtUnitPrice = (TextBox)e.Item.Cells[2].Controls[0];
行 88:  strProductName = txtProductName.Text;
行 89:  decUnitPrice = decimal.Parse(txtUnitPrice.Text);
行 90: 
行 91:  SqlCommand myCommand = new SqlCommand("Update Products set ProductName=@ProductName,UnitPrice=@UnitPrice where ProductID =@ProductID",myConnection);
 源文件: e:\test\021111\datagrideditproducts.aspx.cs    行: 89 堆栈跟踪: 
[FormatException: 输入字符串的格式不正确。]
   System.Number.ParseDecimal(String s, NumberStyles style, NumberFormatInfo info) +0
   System.Decimal.Parse(String s, NumberStyles style, IFormatProvider provider) +30
   System.Decimal.Parse(String s) +9
   _021111.DataGridEditProducts.DataGrid1_UpdateCommand(Object source, DataGridCommandEventArgs e) in e:\test\021111\datagrideditproducts.aspx.cs:89
   System.Web.UI.WebControls.DataGrid.OnUpdateCommand(DataGridCommandEventArgs e) +109
   System.Web.UI.WebControls.DataGrid.OnBubbleEvent(Object source, EventArgs e) +748
   System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +26
   System.Web.UI.WebControls.DataGridItem.OnBubbleEvent(Object source, EventArgs e) +106
   System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +26
   System.Web.UI.WebControls.LinkButton.OnCommand(CommandEventArgs e) +121
   System.Web.UI.WebControls.LinkButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +115
   System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +18
   System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +138
   System.Web.UI.Page.ProcessRequestMain() +1263

解决方案 »

  1.   

    试试 Convert.ToDecimal(txtUnitPrice.Text)
      

  2.   

    这个也用过了“/021111”应用程序中的服务器错误。
    --------------------------------------------------------------------------------指定的转换无效。 
    说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.InvalidCastException: 指定的转换无效。源错误: 行 91:          //decUnitPrice = decimal.Parse(txtUnitPrice.Text);
    行 92:  decUnitPrice = Convert.ToDecimal(txtUnitPrice);
    行 93: 
    行 94:  SqlCommand myCommand = new SqlCommand("Update Products set ProductName=@ProductName,UnitPrice=@UnitPrice where ProductID =@ProductID",myConnection);
     源文件: e:\datagrideditproducts.aspx.cs    行: 92 堆栈跟踪: 
    [InvalidCastException: 指定的转换无效。]
       System.Convert.ToDecimal(Object value) +21
       _021111.DataGridEditProducts.DataGrid1_UpdateCommand(Object source, DataGridCommandEventArgs e) in e:\test\021111\datagrideditproducts.aspx.cs:92
       System.Web.UI.WebControls.DataGrid.OnUpdateCommand(DataGridCommandEventArgs e) +109
       System.Web.UI.WebControls.DataGrid.OnBubbleEvent(Object source, EventArgs e) +748
       System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +26
       System.Web.UI.WebControls.DataGridItem.OnBubbleEvent(Object source, EventArgs e) +106
       System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +26
       System.Web.UI.WebControls.LinkButton.OnCommand(CommandEventArgs e) +121
       System.Web.UI.WebControls.LinkButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +115
       System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +18
       System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +138
       System.Web.UI.Page.ProcessRequestMain() +1263 
      

  3.   

    因为txtUnitPrice有可能为空或并非数字格式
    try{
    decUnitPrice=Convert.ToDecimal(txtUnitPrice);
    }catch(FormatException ex){decUnitPrice=0;}