2016-09-06 17 views
-1

私のコードでOverflowExceptionが得られました。このオーバーフローを修正する方法例外は処理されていませんでした/算術演算でオーバーフローが発生しました

算術演算でオーバーフローが発生しました。あなたのd変数がある数値どんなタイプ

Private Sub txtSearch_KeyPress(ByVal eventSender As System.Object, ByVal eventArgs As System.Windows.Forms.KeyPressEventArgs) Handles txtSearch.KeyPress 
    Dim KeyAscii As Short = Asc(eventArgs.KeyChar) 
    d = 0 
    c = 0 
    Dim strTitle As String 
    Dim b As Short 
    Dim length As Short 
    length = Len(txtSearch.Text) 

    If KeyAscii = 13 Then 
     rf.MoveFirst() 
     If txtSearch.Text = "" Then 
      MsgBox("Search box empty.", MsgBoxStyle.Information) 
      txtSearch.Focus() 
     Else 
      Do Until rf.EOF 
       strTitle = rf.Fields("Title").Value 
       For b = 1 To Len(strTitle) - length 
        If Mid(strTitle, b, length) = txtSearch.Text Then 
         d = d + 1 
         Exit For 
        End If 
       Next 
       rf.MoveNext() 
      Loop 
      lblTotal.Text = "" & d 
      If d = 0 Then 
       MsgBox("Keyword not found.", MsgBoxStyle.Critical) 
       txtSearch.Text = "" 
       txtSearch.Focus() 
      Else 
       rf.MoveFirst() 
       Do Until rf.EOF 
        strTitle = rf.Fields("Title").Value 
        For b = 1 To Len(strTitle) - length 
         If Mid(strTitle, b, length) = txtSearch.Text Then 
          d = d + 1 '<-- Error occurs here. 
          Exit For 
         End If 
        Next 
       Loop 
      End If 
     End If 
    End If 
    eventArgs.KeyChar = Chr(KeyAscii) 
    If KeyAscii = 0 Then 
     eventArgs.Handled = True 
    End If 
End Sub 
+0

ため、<data type>.MaxValueフィールドをチェックすることで見つけることができる問題のコードと例外を投稿し、あなたのコードが失敗し、あなたがそれを防ぐためにしようとしたときに説明を追加してください。 –

+0

コードを画像として投稿しないでください。画像はデバッグできません。 –

+0

注2:あなたの質問には、あなたが何をしているのか、間違っているのか、あなたが得ている完全なエラーメッセージについて常に完全な説明を含めてください。 –

答えて

0

は、これはあなたがその特定の種類のことが可能です何よりも大きな値にインクリメントしようとによって引き起こされます。

dShortであれば、それはIntegerだ、それはどちらか2147483647の最大値を持つことになり、それがオーバーフローしそうだかどうかをチェックIf -statementsを追加したり、より大きな数値を使用する場合、それは32767の最大値を持つことになりますデータタイプ(例えば、Long)。

それぞれの最大値は、インスタンスInteger.MaxValue

+0

あなたはコードm.V.Vを修正できますか? – Derp

+0

@Derp:いいえできません。あなたの変数がどこに由来するのか、どのタイプであるのか、それをどのように使うのか、どのような値が保持されるのか分かりません。 - 私が説明したことはむしろ単純です。大きい数値を保持する必要がある場合は、データ型を変更します。 –

関連する問題