Не удалось сравнить строку, полученную от tcp VB.Net

122
13

Я работаю над приложением, которое получает строку через tcp. Затем я разбираю строку, используя разделитель.

До этого момента все работает отлично. Однако я хочу сделать простую инструкцию if с сопоставлением строк в анализируемых результатах.

Каждый результат имеет два параметра: imagePath и imageID. Если идентификатор изображения не равен NULL, я хочу выполнить какое-либо действие. Однако даже когда я получаю imageID со значением NULL, срабатывает действие внутри оператора if.

Это пример строки, которую я получаю и разбираю:

V:/Movies/Pic010.jpg=59289|V:/Movies/Pic011.jpg=59318|V:/Movies/Pic012.jpg=59278|V:/Movies/Pic04.jpg=59256|V:/Movies/Pic05.jpg=59351|V:/Movies/Pic07.jpg=59267|V:/Movies/Pic08.jpg=59307|V:/Movies/Pic09.jpg=59340|V:/Movies/longWaydown.png=59374|V:/Movies/mali.png=59329|V:/Pic010.jpg=NULL|V:/Pic011.jpg=NULL|V:/Pic03.jpg=NULL|V:/Pic04.jpg=NULL

это код синтаксического анализа с выражением if, вызывающим проблемы:

Dim imagesStatus As New Hashtable
Dim tempImagesArray As String()
tempImagesArray = imagesStatusString.Split("|")

For Each img In tempImagesArray
Dim imagePath As String = img.Remove(img.IndexOf("="))
Dim imageID As String = img.Substring(img.IndexOf("=") + 1)
imagesStatus(imagePath) = imageID
Next

Try
Dim tempMovieQue As New List(Of String)
For Each movieAsset In currentMovieAssets.Values
Dim imageID As String = imagesStatus(graphicAssetsBasePath & "/" & movieAsset("poster").ToString)
imageID = imageID.Trim()

If Not imageID = "NULL" Then // THIS DOES NOT WORK
Console.WriteLine(imageID)
tempMovieQue.Add("{{imageID} {" & imageID & "} {genre} {" & movieAsset("genre") & "} {special} {" & movieAsset("special") & "} {title} {" & movieAsset("asset") & "}}")
End If
Next

Когда я запускаю отладку и проверяю значение imageID, он получает значение "NULL", поэтому я не могу понять, почему сбой моей инструкции if.

Любые предложения будут ценны! ТИА

спросил(а) 2014-06-17T12:21:00+04:00 6 лет, 4 месяца назад
1
Решение
108

пытаться

if not imageID is DBNull.Value Then

.Net придирчивы к нулевым значениям, и они хотят, чтобы у вас было сравнение Is вместо =

ответил(а) 2014-06-17T17:52:00+04:00 6 лет, 4 месяца назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема