我有两个网站aaa和bbb,程序是一样的,只是数据库不同。
但是aaa网站运行正常,bbb运行某一页面的时候出现这个问题。
我以为是数据库的问题,我把两个网站的数据库对调,发现问题依旧。我传过去的参数值id=700,用的时候int.Parse(request.querystring["id"].tostring())
请大家帮忙分析一下,谢谢。急,在线等。
另送分,哪位朋友到:http://topic.csdn.net/u/20090728/22/2ce2fa4a-7949-4a0f-ae22-a119b2572988.html随便回一下接分吧。
输入字符串的格式不正确。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 异常详细信息: System.FormatException: 输入字符串的格式不正确。源错误: 执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。  堆栈跟踪: 
[FormatException: 输入字符串的格式不正确。]
   System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal) +2755599
   System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info) +112
   System.Int32.Parse(String s) +20
   aaa.DAL.中文公司库视图.GetModel(Int32 Id) in G:\aaa转bbb_2009.6.15\DAL\中文公司库视图.cs:301
   aaa.BLL.中文公司库视图.GetModel(Int32 Id) in E:\od1_cc_2009-8-8\BLL\中文公司库视图.cs:54
   aaa.Web.Admin.Admin_CreateSingleUserSite.createSingleSite() +1204
   aaa.Web.Admin.Admin_CreateSingleUserSite.Page_Load(Object sender, EventArgs e) +165
   System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +15
   System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +33
   System.Web.UI.Control.OnLoad(EventArgs e) +99
   System.Web.UI.Control.LoadRecursive() +47
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1436

解决方案 »

  1.   

    request.querystring["id"].tostring()跟踪一下该值为多少,
    改成int.TryParse吧
      

  2.   

    aaa.DAL.中文公司库视图.GetModel(Int32 Id)检查这个方法中的类型转换 和 断点测试下 此时的ID是否是 INT类型
      

  3.   

    request.querystring["id"].tostring();得到的字符串背定不是数字字符串!
    为什么不是就要调试一下了。
      

  4.   

    谢谢各位,我用int.tryparse试了一下,也是同样的提示。
    我在程序中这样写了几句:
    string userId = Common.PageValidate.RequestStr(Request.QueryString["id"]);
                //string userId = "700";
                int oa = 0;
                DateTime startTime = DateTime.Now;
                DateTime endTime = DateTime.Now;
                bool b= int.TryParse(userId,out oa);
                Response.Write("oa=" + oa);
                Response.Write("<br />oa的类型是:"+oa.GetType());输出结果:oa=700
    oa的类型是:System.Int32 大家看我的注释,我也试过给变量赋静态值,但是也是出这样的提示。
    另我很郁闷的是,在我本机上测试,这程序是没有问题的,但是到了服务器上不知道为什么就出了这个问题。
    出问题就算了,为什么另一个网站使用的同样的程序,却又正常啊?
    大家再帮忙分析一下,谢谢,分不够会再加的。
      

  5.   

      将"aaa.DAL.中文公司库视图.GetModel"代码贴出来瞅瞅,
    比较大的可能性是SQL语句拼接,或数据访问出问题了
      

  6.   


       应该是收据访问这里出现问题的,VS报错是在“aaa.DAL.中文公司库视图.GetModel(Int32 Id)” 用户定义方法位置。不需要检查Request.QueryString的问题(如果是,提示的错误不是这个)   最好把这个方法贴出来   或者跟踪下ID,看看哪里转换有问题(可以用VS 附加到 进程中调试,VS可以带你看到具体的位置的)