2009-01-24 66 views
3

我正在尝试在Citrix环境中部署WinForms应用程序。它在其他物理和虚拟机器上一直可靠地工作了一段时间,但只有在Citrix桌面上运行应用程序时才会失败。Cint(“1”)为什么会失败?

失败通常是我们在(SQL Server 2005)数据库中的通用设置表中将混合类型的数据作为字符串来处理,然后在运行时将它们转换为适当的类型。

因此,例如,有一个在一个varchar在数据库上“1”(50)柱,它的读取,然后像

dim myNumericVariable as integer = Cint(dr.Item(columnName)) 

(其中博士是DataRow中走出ADO的。净)。

中抛出的异常的消息称:

Conversion from string "1" to type 'integer' is not valid 

这种故障是发生在整个应用程序,但只在Citrix环境。在我们所有的其他环境中,它运行良好,但我不知道Citrix是否只是一种侥幸,还有其他一些潜在的原因。

这是一个VB.NET应用程序,.NET 2.0,Strict和Explicit都是在x86上编译的。它可以在XP SP3上运行,也可以在Windows 2003 Server x64上运行。

我在我的智慧结束这一点 - 我看了所有,并没有发现为什么我看到这种行为的暗示。我会非常感谢您的建议。如果您需要更多关于环境的信息或应用程序的构建方式,我会很乐意编辑这个问题。在此先感谢..

回答

4

这是一个known bug;希望他们能解决它。

+0

非常感谢...我收到的消息肯定与您在此给出的KB链接相同。这是一个很有前途的领先,但遗憾的是我没有访问相关服务器上的注册表,所以我不得不等待,直到周一才能确定! – ChrisA 2009-01-24 14:23:24

0

是的,我在32位Vista笔记本电脑上看不到任何错误,所以很难说。

也许你可以尝试Integer.Parse()?

Dim yourVar as Integer = Integer.Parse(dr.Item("YourColName").toString()) 
相关问题