System.ArgumentNullException: 值不能为空。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了System.ArgumentNullException: 值不能为空。相关的知识,希望对你有一定的参考价值。

说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.ArgumentNullException: 值不能为空。
参数名: String

源错误:

行 22: if (categories != null)
行 23:
行 24: foreach (Category category in categories)
行 25:
行 26: txtCategoryId.Text = category.CategoryId.ToString();

源文件: d:\桌面\新建文件夹\web\MyPetShop\LinqEdit.aspx.cs 行: 24

堆栈跟踪:

[ArgumentNullException: 值不能为空。
参数名: String]
System.Data.Linq.SqlClient.QueryConverter.VisitInvocation(InvocationExpression invoke) +403
System.Data.Linq.SqlClient.QueryConverter.VisitInner(Expression node) +1200
System.Data.Linq.SqlClient.QueryConverter.VisitExpression(Expression exp) +23
System.Data.Linq.SqlClient.QueryConverter.VisitBinary(BinaryExpression b) +33
System.Data.Linq.SqlClient.QueryConverter.VisitInner(Expression node) +336
System.Data.Linq.SqlClient.QueryConverter.VisitExpression(Expression exp) +23
System.Data.Linq.SqlClient.QueryConverter.VisitWhere(Expression sequence, LambdaExpression predicate) +134
System.Data.Linq.SqlClient.QueryConverter.VisitSequenceOperatorCall(MethodCallExpression mc) +3659
System.Data.Linq.SqlClient.QueryConverter.VisitMethodCall(MethodCallExpression mc) +80
System.Data.Linq.SqlClient.QueryConverter.VisitInner(Expression node) +921
System.Data.Linq.SqlClient.QueryConverter.ConvertOuter(Expression node) +94
System.Data.Linq.SqlClient.SqlProvider.BuildQuery(Expression query, SqlNodeAnnotations annotations) +418
System.Data.Linq.SqlClient.SqlProvider.System.Data.Linq.Provider.IProvider.Execute(Expression query) +445
System.Data.Linq.DataQuery`1.System.Collections.Generic.IEnumerable<T>.GetEnumerator() +93
LinqEdit.Page_Load(Object sender, EventArgs e) in d:\桌面\新建文件夹\web\MyPetShop\LinqEdit.aspx.cs:24
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

请问这个错在哪啊???foreach那样用没错啊???为什么会提示哪一行的值为空不行呢???

参考技术A 你用的是Linq
Linq 有延时执行的机制
你要到返回这个categories集合的Linq语句里找错误
因为 Foreach的时候 才去执行Linq的查询追问

可以具体告诉我应该怎么做吗???

追答

你调试的时候 断点打在linq语句上
看看调用了什么方法
应该是调用某个方法 给的参数是Null
而这个方法的这个参数 是不允许为Null的

追问

因为我是一个菜鸟,所以不是很清楚怎么改,你可不可以给我你的邮箱,我发给你,然后你帮我改一下啊!!非常感谢!!!

为啥耳机会连不上电脑蓝牙?

电脑连接不上蓝牙耳机是因为电脑设备管理器设置错误:
1、在电脑左下角点击【开始】图标,然后点击打开【控制面板】。
2、控制面板里点击【系统和安全】
3、接着在系统和安全设置中点击打开【管理工具】
参考技术A 耳机是不支持电脑蓝牙的,只能连接手机蓝牙 希望我的回答对你有帮助 参考技术B 首先我们鼠标右键点击电脑桌面右下角的声音图标,选择“播放设备,

这时我们在声音的播放选项卡中,可以自己的蓝牙耳机设备,

我们将两个“耳机”上均使用鼠标右键点击,选择“连接”,

连接完毕之后,我们就可以正常的连接蓝牙耳机了。

以上是关于System.ArgumentNullException: 值不能为空。的主要内容,如果未能解决你的问题,请参考以下文章