Почему Cint ("1") потерпит неудачу? - PullRequest
3 голосов
/ 24 января 2009

Я пытаюсь развернуть приложение WinForms в среде Citrix. Некоторое время он надежно работал на других физических и виртуальных машинах, но не работал, только при запуске приложения на рабочем столе Citrix.

Обычно в случае сбоев данные смешанного типа представляются в виде строк в таблице настроек общего назначения в базе данных (SQL Server 2005), а затем преобразуются в соответствующий тип во время выполнения.

Так, например, в базе данных в столбце varchar (50) есть «1», она читается, а затем что-то вроде

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

(где dr - строка данных, выходящая из ADO.NET).

Сообщение в брошенном исключении гласит:

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.

Я на этом сошел с ума - я осмотрелся и не нашел намека на то, почему я вижу это поведение. Буду очень признателен за предложения. Если вам нужна дополнительная информация об окружении или о том, как построено приложение, я с радостью отредактирую вопрос. Заранее спасибо ..

Ответы [ 2 ]

4 голосов
/ 24 января 2009

Это известная ошибка ; надеюсь, они это исправят.

0 голосов
/ 24 января 2009

Да, я также не вижу никаких ошибок на моем 32-битном ноутбуке Vista, поэтому сложно сказать.

Может быть, вы могли бы попробовать Integer.Parse ()?

Dim yourVar as Integer = Integer.Parse(dr.Item("YourColName").toString())
...