首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FindControl()方法抛出ArithmeticException?

FindControl()方法抛出ArithmeticException?
EN

Stack Overflow用户
提问于 2008-09-17 17:24:49
回答 3查看 707关注 0票数 0

我在我的ASP.NET代码中有一行C#,看起来像这样:

代码语言:javascript
复制
DropDownList ddlStates = (DropDownList)fvAccountSummary.FindControl("ddlStates");

DropDownList控件是在页的标记中显式声明的,而不是动态创建的。它位于FormView控件的内部。当我的代码到达这一行时,我将得到一个带有消息"Value am large or too line for an Int32“的值。这段代码以前是有效的,现在已经投入生产了。我启动了VS2008来对站点进行一些更改,但是在进行任何更改之前,我从页面得到了这个异常。有人见过这个吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2008-09-17 20:02:08

如果这是堆栈跟踪,那么它来自数据绑定,而不是来自您发布的行。有没有可能你有一些非常大的数据集?我见过6000页的GridView溢出Int16,尽管看起来不太可能真的溢出Int32……

例如,检查以确保您将正确的数据传递到数据源的startpageIndex或pageSize中。

票数 3
EN

Stack Overflow用户

发布于 2008-09-17 17:40:50

您是否100%确定这就是抛出异常的代码行?我非常确定FindControl方法不能抛出ArithmeticException。当然,我以前也被认为是错的。:)

票数 0
EN

Stack Overflow用户

发布于 2008-09-17 18:21:36

我以前在C#/.NET中见过ArithmeticException在奇怪的地方抛出,那是当我使用p/invoke来调用非托管.dll与USB设备对话时。

崩溃是一致的,而且总是在同一个地方。当然,这个地方与崩溃完全无关(我认为这是一个基本的赋值,比如int =4或类似的愚蠢的东西)

我希望有一个幸福的结局告诉你,但我从来没有设法完全追查到这个问题。我强烈认为原因在于非托管代码,它以某种方式损坏了内存,甚至可能释放了托管内存。(删除对非托管代码的调用使问题消失)

我要传达的信息是:您是否在调用非托管代码?如果是这样的话,我的建议是你应该把你的调试技能集中在那里:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/85588

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档