3

我正在尝试在 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 上完美运行。

我对此束手无策 - 我已经看了一遍,没有发现任何关于我为什么会看到这种行为的暗示。我将非常感谢您的建议。如果您需要有关环境或应用程序构建方式的更多信息,我会很乐意编辑问题。提前致谢..

4

2 回答 2

4

这是一个已知的错误;希望他们能解决它。

于 2009-01-24T11:12:48.183 回答
0

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

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

Dim yourVar as Integer = Integer.Parse(dr.Item("YourColName").toString())
于 2009-01-24T14:14:15.977 回答