无法比较从tcp VB.Net收到的字符串

时间:2014-06-17 09:21:39

标签: vb.net if-statement tcp string-comparison

我正在开发一个通过tcp接收字符串的应用程序。然后我使用deliminator解析字符串。

到目前为止,一切正常。但是,我想在解析结果上使用字符串比较执行简单的if语句。

每个结果都有两个参数,imagePath和imageID。如果imageID不是NULL,我想执行一些操作。但是,即使我收到值为NULL的imageID,也会触发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语句失败。

任何建议都将不胜感激! TIA

1 个答案:

答案 0 :(得分:0)

if not imageID is DBNull.Value Then

.Net对于空值很挑剔,他们希望你得到Is比较而不是=