浅谈单步调试


       花了几个月的构思,经过一星期的奋战,终于把数据库设计及一些类基本搞定,虽然自觉缺陷步少,但还是有那么一点欣慰的,^_^,昨天晚上写了注册及登录页面测试设计结果,错误出现!

        每次在填写注册信息提交后,Message.Text显示"注册失败!",而打开数据表查看用户信息,发现已经添加至数据库,百思不得其解.以下为提交触发事件代码:               

private void Button1_Click(object sender, System.EventArgs e)
  {
   if(Page.IsValid==true)
   {
    //考虑到匿名用户购物情况,应该还执行一个购物车号转移操作
    string userName=UserName.Text.Trim();
    string password=Password.Text.Trim();
    string email=Email.Text.Trim();
    string address=Address.Text.Trim();

    EasybuyExcuData userInfo=new EasybuyExcuData();

    String tempCartID=userInfo.GetCartID();
    String userID=userInfo.AddUser(userName,password,"",email,"","","",address,"");

    if(userID !="")
    {
     FormsAuthentication.SetAuthCookie(userID,false);

     userInfo.TransplantShoppingCart(tempCartID,userID);

     Response.Cookies["Easybuy_UserName"].Value=Server.HtmlEncode(userName);

     Response.Redirect("TestLink.aspx");
    }
    else
    {
     ErrorMessage.Text="注册失败!该用户名已经被人注册过了!";
    }
  同时AddUser()方法代码经过调试没有任何错误,根据以上情况初步分析,已经执行了数据插入操作,但返回值UserID为空,但不知如何解决!!

AddUser()中得部分代码

   try
   {
    myConnection.Open();

    //执行不返回数据的数据库操作
    myCommand.ExecuteNonQuery();

    myConnection.Close();

    int UserID=(int)parameterUserID.Value;

    return UserID.ToString();
   }
    //若出错则返回空值
   catch
   {
    return String.Empty;
   }

   想起单步调试,于是在userInfo.AddUser()处设置断点,发现程序执行进至catch语句块

产生错误信息,再回存储过程一看,才想起由于前几天自己的欠缺,误以为数据库自增默认的Identity为int 4  类型,为了以后客户增加需要给设置成bigint(8)型.采用单步调试,发现执行了数据插入操作,却又转入catch代码段,推想抛出异常,检查对应的AddUser存储过程,才发现都是采用bigint型,而代码中均使用int型进行强制类型转化,不能实现,故抛出异常!这时才猛然醒悟!后来一查SQL帮助文档才知道自己原来的想法是错误的,Identity int 4也能自增到大于四位以上,而int型的范围-2^31-2^31仍然不变!于是将所有bigint型改回int(4)自增类型,问题解决!善用单步调试,这时自己才算是深有体会,于是赶紧找到关于应用程序调试方面视频讲座细看!!!

转载于:https://www.cnblogs.com/feiren1421/archive/2006/02/22/335139.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值