1

我有一个看起来像这样的查询:

 surveyCompleted = from s in surveyCompleted 
                where agentTickets.Contains(s.TicketID.Value) || s.UserID == new Guid(txtUserID.Text) select s;

问题是,在这个声明之后,我无法对surveyCompleted 做任何事情,因为我得到了一个InvalidCastException。任何想法为什么会发生这种情况?所有其他带有surveyCompleted 的选择语句都可以正常工作,但是这个失败了吗?它可能来自 where 子句中的语句“agentTickets.Contains(s.TicketID.Value)”吗?

4

3 回答 3

1

尝试使用此代码

from s in surveyCompleted 
                where agentTickets.Contains(s.TicketID.Value) || s.UserID == new Guid(txtUserID.Text).ToString() select s;
于 2012-08-02T14:41:07.377 回答
1

If txtUserIDis a TextBox(name 导致这样认为),那么new Guid(txtUserID.Text)如果它不包含精确的类似Guid字符串 (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)则会抛出

于 2012-08-02T14:52:15.370 回答
0

这是一个 LINQ to SQL,对吗?

确保它s.TicketID永远不是 NULL:

!Convert.IsDBNull(s.TicketID) && agentTickets.Contains(s.TicketID.Value)
于 2012-08-02T14:45:53.307 回答