我正在尝试在Citrix环境中部署WinForms应用。它在其他物理机和虚拟机上可靠地工作了一段时间,但只有在Citrix桌面上运行应用程序时才会失败。
失败通常是我们在(SQL Server 2005)数据库中的通用设置表中将混合类型数据作为字符串,然后在运行时将它们转换为适当的类型。
例如,varchar(50)列中的数据库上有一个'1',它被读入,然后是
dim myNumericVariable as integer = Cint(dr.Item(columnName))
(其中dr是来自ADO.NET的DataRow)。
抛出异常中的消息说:
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。
我的智慧结束了 - 我看了一遍,并没有发现为什么我看到这种行为的暗示。我非常感谢你的建议。如果您需要有关环境或应用程序构建方式的更多信息,我将很乐意编辑该问题。提前谢谢..
答案 0 :(得分:4)
这是known bug;希望他们能解决它。
答案 1 :(得分:0)
是的,我在32位Vista笔记本电脑上也没有看到任何错误,所以很难说。
也许你可以试试Integer.Parse()?
Dim yourVar as Integer = Integer.Parse(dr.Item("YourColName").toString())