为啥 Textarea.Innertext 给我空点异常? [复制]
Posted
技术标签:
【中文标题】为啥 Textarea.Innertext 给我空点异常? [复制]【英文标题】:Why Textarea.Innertext gives me null point exception? [duplicate]为什么 Textarea.Innertext 给我空点异常? [复制] 【发布时间】:2015-02-14 03:09:09 【问题描述】:<textarea id="TextAreaSend" runat="server" name="SendText">
我创建了文本区域来写一些东西。并将它保存到数据库中并使用 linq to entity。
if (!String.IsNullOrEmpty(TextAreaSend.InnerText))
int ticketno = Convert.ToInt32(ViewState["TicketNo"]);
var source = from tickettext in entities.Tickets
where tickettext.TicketNo == ticketno
select tickettext;
Ticket ticket = source.Single();
//This is where null point exception is
ticket.Answer.AnswerText = TextAreaSend.InnerText;
entities.SaveChanges();
ticket.Answer.AnswerText = TextAreaSend.InnerText;在此行中我 接收; P>
对象引用未设置为对象的实例。为什么会这样?我该如何解决?
【问题讨论】:
什么是ticket.Answer
?你确定这不是给你空引用的原因吗?
它是由实体 Ticket 创建的一个类。它是我数据库中的一个具有导航属性的表,我只是指出要写入的位置。
但我会检查一下
ticket.Answer
可能是null
的项目。如果在对 TextAreaSend.InnerText
执行 null 或空检查时它在该代码的第一行没有失败,那么在读取它以分配给 AnswerText
时它不会失败。
【参考方案1】:
如果它在对TextAreaSend.InnerText
进行空或空检查时在该代码的第一行没有失败,那么在读取分配给AnswerText
的属性值时它不会因为同样的原因而失败.
ticket
在这里也不能是 null
,因为如果查询返回 0 或多于 1 个 Ticket
,您将收到不同的异常。
我们剩下的是ticket.Answer
可能是这里的null
,而不是ticket
或TextAreaSend
。您正在尝试写入 null
对象的属性。
【讨论】:
我应该将ticketno添加到数据库中。它只是找不到ticketno和answerText所以找不到任何东西。对不起我的错误我有点急于这样做【参考方案2】:当您调用“source.Single()”时,我会检查返回了多少实体。如果在使用“Single()”时返回多个实体或没有返回实体,则可能会引发异常。此外,如果您使用“SingleOrDefault()”,则可以在继续使用其余代码之前检查 null。
【讨论】:
谢谢,我也会在测试时使用它..以上是关于为啥 Textarea.Innertext 给我空点异常? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
用 .duplicated() 迭代地对熊猫块进行子集化给了我空数组