2017-10-18 239 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 

现在我想的是,如果由于某种原因失败将数据插入到数据库,包含异常消息的MSGBOX将显示,当我在窗体中单击该按钮detailsbtn。有什么办法可以做到吗?

我得到这个代码的形式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'变量,所以显而易见的解决方案是什么?你需要把你需要的数据放在可以从第二个'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

我固定它!!!!!!! DIM ERR AS INTEGER = “” CATCH EX AS例外 ERR = ERR +(EX.MESSAGE) 点击链接_event MSGBOX(ERR) –

+0

“DIM ERR AS INTEGER” 应为“DIM ERR AS字符串“ –

+0

OH SORRY!这是一个字符串!输入错误的笑话! –

0

我修好了! !!!!

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

请提供有关错误原因以及您的解决方案如何解决此问题的更多信息。 – Lepidopteron

+0

我发布了代码...请检查它 –

0

我想你可以简单地叫准备lsExceptionalError 一个空字符串和

后来与ex.message填补它在捕捉部分,外面的方法把一些检查像 如果不是string.isNullorEmpty( lsExceptionalError)then msgbox(lsExceptionalError) end if