2016-05-19 77 views
1

我目前正在使用SQL後端工作在VB.NET visual studio express 2013中。我有一個SQL查詢,從SQL Server中拉出一份工作列表。從那裏,這個清單被填入生產主管的組合框中,以將工作推到製造業。主管可以將工作推送到幾臺不同的機器上。但是,每個列表都有一些「空白」作業,因爲他可以將該作業推送到任何機器,但該機器可能沒有任務分配給該作業。要從列表中刪除空白條目,我將不得不根據日期時間查找具有該作業說明的每個PDF文件,並檢索文件大小。由於pdf是自動生成的,空白文件將始終具有相同的文件大小。然後我會交叉引用文件大小,如果它等於或小於空文件大小,它將從列表中刪除它。我越來越掛在比較文件大小的交叉引用上。當我嘗試用一​​個整數比較文件的大小時,它會引發一個錯誤,我似乎無法弄清楚爲什麼,對於VB.Net的IO位來說相當新。繼承人我的代碼:根據相對文件大小從數據綁定的組合框中移除條目,VB.Net

For Each row As DataRow In dt.Rows 
Try 
         Dim year As String = Now.Year 
         'Dim InfoReader As System.IO.FileInfo 
         inforeader = My.Computer.FileSystem.GetFileInfo("document.pdf") 
         'MsgBox("File is " & InfoReader.Length & "bytes") 
        Catch ex As Exception 
         Dim year As String = Now.Year 
         'Dim InfoReader As System.IO.FileInfo 
         inforeader = My.Computer.FileSystem.GetFileInfo("document.pdf") 
         'MsgBox("File is " & InfoReader.Length & "bytes") 
        End Try 

        If inforeader.Length <= 3333 Then 
         row.Delete() 
        End If 
Next row 

請注意,我刪除了空間節省和公司保護的實際PDF文件路徑。另外,不要擔心年份或評論,它是該計劃的一部分。我的問題是「inforead.length < = 3333」

EDIT(Solution)----------------------------- -----------------------------

Dim TheSize As ULong = My.Computer.FileSystem.GetFileInfo(document.pdf").Length 

        Select Case TheSize 
         Case Is >= 1 
          MsgBox("Blamo") 


        End Select 

這是工作

感謝,

回答

2

燦您將該代碼放置在Try-Catch塊中,以便捕獲並輸出異常?我懷疑它可能與你的DataTable有關。

Try 
    If inforeader.Length <= 3333 Then 
    row.Delete() 
    End If 
Catch (ex As Exception) 
    MessageBox.Show(ex.Message) 
End Try 
+0

是的,我有一個ex.tostring整個事情。我其實剛剛得到它的工作。 Datatable很好。我將數據類型更改爲整數。我將編輯帖子。 – Cheddar

+0

我編輯了原始帖子以顯示我的更改。 ULong確實有效。 – Cheddar

+0

你只需要一長。 ULong不是必要的,但不會受到傷害。我很高興你能想出來並編輯帖子以包含你的解決方案。 –