ArgumentNullException: 值不能为 null问题

来源:互联网 发布:oracle java tutorial 编辑:程序博客网 时间:2024/06/05 18:41

今天做实验时遇到了这样的问题:

ArgumentNullException: 值不能为 null。
问题的错误提示如下:
行 14:         {行 15:             string categoryId = Request.QueryString["CategoryId"];行 16:             var category = (from c in db.Category行 17:                             where c.CategoryId == int.Parse(categoryId)行 18:                             select c).First();


源文件: e:\mywebs\Expelement\WebSet\Updata.aspx.cs    行: 16 

堆栈跟踪: 

[ArgumentNullException: 值不能为 null。参数名: String]   System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal) +10725658   System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info) +145   System.Int32.Parse(String s) +23   lambda_method(Closure ) +101[TargetInvocationException: 调用的目标发生了异常。]   System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) +0   System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) +192   System.Delegate.DynamicInvokeImpl(Object[] args) +117   System.Data.Linq.CommonDataServices.GetKeyFromPredicate(MetaType type, Dictionary`2 keys, Expression mex, Expression vex) +459   System.Data.Linq.CommonDataServices.GetKeysFromPredicate(MetaType type, Dictionary`2 keys, Expression expr) +257   System.Data.Linq.CommonDataServices.GetKeyValues(MetaType type, LambdaExpression predicate) +87   System.Data.Linq.CommonDataServices.GetCachedObject(Expression query) +573   System.Data.Linq.CommonDataServices.GetCachedObject(Expression query) +308   System.Data.Linq.SqlClient.SqlProvider.GetCachedResult(Expression query) +44   System.Data.Linq.SqlClient.SqlProvider.System.Data.Linq.Provider.IProvider.Execute(Expression query) +91   System.Data.Linq.DataQuery`1.System.Linq.IQueryProvider.Execute(Expression expression) +58   System.Linq.Queryable.First(IQueryable`1 source) +251   Updata.Page_Load(Object sender, EventArgs e) in e:\mywebs\Expelement\WebSet\Updata.aspx.cs:16   System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +51   System.Web.UI.Control.OnLoad(EventArgs e) +92   System.Web.UI.Control.LoadRecursive() +54   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +772
      后来发现要 对传的值进行是否为空值判断,改成以下就行了
          if (!String.IsNullOrEmpty(Request.QueryString["CategoryId"]))           {             


                string categoryId = Request.QueryString["CategoryId"];
                var category = (from c in db.Category
                                where c.CategoryId == int.Parse(categoryId)
                                select c).First();

我也是个菜鸟,希望对你有用吧

1 0