是关于购物车的:public class Addtocart : System.Web.UI.Page
{

private void Page_Load(object sender, System.EventArgs e)
{
if (Request.Params["goodsID"] != null) 
{
        
// Obtain current user's shopping cart ID  
String cartId = DB.GetShoppingCartId();   
            
// Add Product Item to Cart
AddItemtoShoppingCart(cartId, Int32.Parse(Request.Params["goodsID"]), 1);
}  
Response.Redirect("showcart.aspx"); // 在此处放置用户代码以初始化页面
}

public void AddItemtoShoppingCart(string cartID, int goodsID, int quantity) 
{

//创建数据库连接和命令的对象
SqlConnection con=DB.CreationCon();
con.Open();
string cmdstr="select Count(*) from shoppingcarts where goodsID='goodsID'and shoppingcartID='"+cartID+"'";
SqlCommand cmd= new SqlCommand("cmdstr", con);
int Count=Convert.ToInt32(cmd.ExecuteScalar());
if(Count>0)
{
cmd.CommandText="UPDATE shoppingcarts SET goodsquantity =(goodsquantity + shoppingcarts.goodsquantity) WHERE  goods.goodsID = shoppingcarts.goodsID and shoppingcartID ='"+cartID+"'";
cmd.ExecuteNonQuery();
con.Close();

}
else
{
cmd.CommandText="insert into shoppingcarts(shoppingcartID,goodsID,goodsquantity) values('"+cartID+"','goodsID','quantity')";
cmd.ExecuteNonQuery();
con.Close();
}

} #region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{    
this.Load += new System.EventHandler(this.Page_Load); }
#endregion
}
编译时出错:
“/OLshopping”应用程序中的服务器错误。
--------------------------------------------------------------------------------输入字符串的格式不正确。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.FormatException: 输入字符串的格式不正确。源错误: 
行 27:             
行 28:  // Add Product Item to Cart
行 29:  AddItemtoShoppingCart(cartId, Int32.Parse(Request.Params["goodsID"]), 1);
行 30:  }  
行 31:  Response.Redirect("showcart.aspx");
 源文件: c:\inetpub\wwwroot\olshopping\addtocart.aspx.cs    行: 29 堆栈跟踪: 
[FormatException: 输入字符串的格式不正确。]
   System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info) +0
   System.Int32.Parse(String s) +38
   OLshopping.Addtocart.Page_Load(Object sender, EventArgs e) in c:\inetpub\wwwroot\olshopping\addtocart.aspx.cs:29
   System.Web.UI.Control.OnLoad(EventArgs e)
   System.Web.UI.Control.LoadRecursive()
   System.Web.UI.Page.ProcessRequestMain() 

解决方案 »

  1.   

    Int32.Parse在参数不能顺利转换成为数字的时候比如
    Int32.Parse("abc")就抛出FormatException
    应该在try catch 内捕获该异常 做你自己的处理 比如告诉用户 输入的字符不是数字等等
      

  2.   

    我加了try catch 问题就出在:
    if (Request.Params["goodsID"] != null) 
    {
            
    // Obtain current user's shopping cart ID  
    String cartId = DB.GetShoppingCartId();   
                
    // Add Product Item to Cart
    AddItemtoShoppingCart(cartId, Int32.Parse(Request.Params["goodsID"]), 1);
    }  
    Response.Redirect("showcart.aspx");这里,可能还是字符串的问题,不知楼上说的FormatException是什么意思啊?能不能说明白点,谢谢啦!另外,我装了MSDN怎么里面没有关于.NET方面的东西呢?望高手指教!