1

私は現在、SQL バックエンドを使用して VB.NET Visual Studio Express 2013 で作業しています。SQL サーバーからジョブのリストを取得する SQL クエリがあります。そこから、このリストは生産監督者がジョブを製造にプッシュするためのコンボ ボックスに取り込まれます。スーパーバイザは、複数の異なるマシンにジョブをプッシュできます。ただし、各リストには「空の」ジョブがいくつかあります。たとえば、彼はそのジョブを任意のマシンにプッシュできますが、そのマシンにはそのジョブにタスクが割り当てられていない可能性があります。リストから空白のエントリを削除するには、日付時刻に基づいて、そのジョブの説明を含む個々の PDF ファイルを検索し、ファイル サイズを取得する必要があります。PDF は自動的に生成されるため、空のファイルは常に同じファイル サイズになります。次に、ファイル サイズを相互参照し、空のファイル サイズ以下の場合はリストから削除します。ファイルサイズ比較のクロスリファレンスに困っています。ファイルのサイズを整数と比較しようとすると、エラーがスローされ、その理由がわかりません.VB.NetのIOビットにはかなり慣れていません。私のコードは次のとおりです。

 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」にあります

編集(解決策)---------------------------------------------- ------------

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

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


                    End Select

これは機能しています

ありがとう、

4

1 に答える 1

2

例外をキャッチして出力できるように、そのコードを Try-Catch ブロックに配置できますか? 私はそれがあなたのDataTable.

Try
  If inforeader.Length <= 3333 Then
     row.Delete()
  End If
Catch (ex As Exception)
   MessageBox.Show(ex.Message)
End Try
于 2016-05-19T13:20:45.813 に答える