2017-10-18 5 views
-1

私はdatagridviewといくつかのボタンを持つwinformアプリケーションを持っています.SQLデータベースにデータを挿入するボタンがあります。コードは次のとおりです。ボタンクリック時にex.messageを表示

try 
    dim con as new sqlconnection(MY CONNECTION STRING) 
    dim cmd as new sqlcommand("Insert into MYDB (firstname) values (@fname)",con) 
    cmd.parameters.add("@fname",sqldbtype.varchar).value=fname.text 
catch ex as exception 
    detailsbtn.visible=true 
end try 

今私が欲しいものを私は自分のフォームでボタンdetailsbtnをクリックしたとき、それは、DBにデータを挿入するために失敗したいくつかの理由で、例外メッセージを含むメッセージボックスが表示された場合、です。それを行う方法はありますか?

私はこのコード形式MSDNフォーラム

Public Sub ExceptionLogTest(ByVal fileName As String) 
Try 
    ' Code that might generate an exception goes here. 
    ' For example: 
    ' Dim x As Object 
    ' MsgBox(x.ToString) 
Catch ex As Exception 
    My.Application.Log.WriteException(ex, 
     TraceEventType.Error, 
     "Exception in ExceptionLogTest " & 
     "with argument " & fileName & ".") 
End Try 
End Sub 

を得たが、私は、ボタンのクリックは、例外メッセージを取得する方法を見ていません!何をすべきか ?

+0

考えてみてください。ユーザがその「ボタン」をクリックすると、表示されるテキストはハードコードされるか、どこかから検索されなければならない。明らかにあなたが投稿したコードから 'ex'変数にアクセスすることはできませんので、明白な解決策は何ですか?必要なデータを、その2番目の 'Button'の' Click'イベントハンドラからアクセスできる場所に置く必要があります。これは単なるプログラミングの基本です。データにアクセスする場合は、後でアクセスできる場所にデータを配置する必要があります。 – jmcilhinney

+0

だから、filestramを使用して.txtファイルにex.messageを保存し、次にボタンをクリックすると、txtファイルからデータを取得するメッセージボックスを表示することをお勧めしますか? –

+0

投稿をもう一度読んでください!今すぐ編集しました –

答えて

0

あなたは、この技術を使用することができます。

Public Class YourClassName 

    Dim ErrorMessage As String = "" 

    Public Sub YourSubName() 
     Try 
      dim con as new sqlconnection(MY CONNECTION STRING) 
      Dim cmd As New SqlCommand("Insert into MYDB (firstname) values (@fname)", con) 
      cmd.Parameters.Add("@fname", SqlDbType.VarChar).Value = fname.text 
     Catch ex As Exception 
      ErrorMessage = ex.Message.ToString() 
      detailsbtn.visible = True 
     End Try 
    End Sub 

End Class 

そして、あなたのボタンdetailsbtnクリックイベントでは、あなたは以下のような変数ErrorMessageの値を表示することができます。

MessageBox.Show(ErrorMessage) 
+0

I FIXED IT !!!!!!! DIM ERR AS INTEGER = "" CATCH EX AS EXCEPTION ERR = ERR +(EX.MESSAGE) ボタンクリック_event MSGBOX(ERR) –

+0

"DIM ERR AS INTEGERはDIM ERR AS" でなければなりません」ストリング " –

+0

OH SORRY!それはストリングです!タイプミス笑! –

0

私はそれを修正! !!!!

私はあなたが(単にlsExceptionalError と呼ばれる空の文字列を作成し、後でex.message

でキャッチセクションでそれを埋める、法の外 のようないくつかのチェックを入れない場合はstring.isNullorEmptyことができると思い

DIM ERR AS STRING= "" 
CATCH EX AS EXCEPTION 
ERR=ERR + (EX.MESSAGE) 
BUTTON CLICK _EVENT MSGBOX(ERR) 
+0

エラーの原因と解決策がこの問題をどのように解決するかについての詳細情報を提供してください。 – Lepidopteron

+0

私はコードを掲載しました...それを確認してください –

0

lsExceptionalError)then msgbox(lsExceptionalError) 終了の場合

関連する問題