为啥 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,而不是ticketTextAreaSend。您正在尝试写入 null 对象的属性。

【讨论】:

我应该将ticketno添加到数据库中。它只是找不到ticketno和answerText所以找不到任何东西。对不起我的错误我有点急于这样做【参考方案2】:

当您调用“source.Single()”时,我会检查返回了多少实体。如果在使用“Single()”时返回多个实体或没有返回实体,则可能会引发异常。此外,如果您使用“SingleOrDefault()”,则可以在继续使用其余代码之前检查 null。

【讨论】:

谢谢,我也会在测试时使用它..

以上是关于为啥 Textarea.Innertext 给我空点异常? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

在 pyspark 中通过检查加载数据框给了我空的数据框

用 .duplicated() 迭代地对熊猫块进行子集化给了我空数组

为啥数据给我null?

为啥 FxCop 给我一个“DoNotCastUnnecessarily”警告?

为啥 linux 上的 curses 给我以下错误?

为啥会这样?谁能给我答案