Vb.net 如果错误更新dbf文件中的每一行数据,请在txt文件中写入错误消息

Vb.net 如果错误更新dbf文件中的每一行数据,请在txt文件中写入错误消息,vb.net,exception,logging,Vb.net,Exception,Logging,我这里有一段代码,如果每行数据都没有更新,我想在文本文件中写入错误消息。我能知道这是我的尝试吗?抓块是对的还是错的 For rCnt = 3 To 4 Empno = xlRange.Cells(rCnt, 1).Value totalhrs = xlRange.Cells(rCnt, 3).Value 'workhr latehr = xlRange.Cells(rCnt, 4).V

我这里有一段代码,如果每行数据都没有更新,我想在文本文件中写入错误消息。我能知道这是我的尝试吗?抓块是对的还是错的

        For rCnt = 3 To 4
                Empno = xlRange.Cells(rCnt, 1).Value
                totalhrs = xlRange.Cells(rCnt, 3).Value 'workhr
                latehr = xlRange.Cells(rCnt, 4).Value 'latehr
                earlyhr = xlRange.Cells(rCnt, 5).Value 'earlyhr
                norOT = xlRange.Cells(rCnt, 6).Value 'nor OT
                holOT = xlRange.Cells(rCnt, 7).Value 'hol ot
                otherOT = xlRange.Cells(rCnt, 8).Value 'other ot
                attend = xlRange.Cells(rCnt, 9).Value 'attendace
                absent = xlRange.Cells(rCnt, 10).Value 'absent
                mc = xlRange.Cells(rCnt, 11).Value 'leave

                sCommand = "UPDATE paytran.dbf SET paytran.workhr = " & totalhrs & ", paytran.latehr = " & latehr & ", paytran.earlyhr = " & earlyhr & ", paytran.ot1 = " & norOT & ",  paytran.ot2 = " & holOT & ",  paytran.ot3 = " & otherOT & ", paytran.dw = " & attend & ", paytran.ab = " & absent & ", paytran.mc = " & mc & " , paytran.payyes = 'Y' WHERE paytran.empno == '" & Empno & "'"
                dBaseCommand = New OleDbCommand(sCommand, dBaseConnection)

                Try
                    retVal = dBaseCommand.ExecuteNonQuery()

                Catch ex As IOException
                    'To_WriteAudit("Error", ex.Message.ToString()) 'here my catch block that write the file..
                End Try
            Next rCnt


Public Sub To_WriteAudit(ByVal pstrAction As String, ByVal pstrErrorDes As String)

    Dim pathlf As String

    pathlf = "C:\logfile.txt"

    Dim fswAuditLog As StreamWriter
    fswAuditLog = New StreamWriter(pathlf, True)
    fswAuditLog.WriteLine("Write the exception here")
    fswAuditLog.Flush()
    fswAuditLog.Close()

End Sub

Try-Catch块是正确的,如果更新执行中出现错误(未注释时),应调用_-writeaudit。但是,您还应该测试retVal以确保它是1(更新的行数)。如果为零,则不更新任何内容。如果大于零,则更新了多行


此外,您可能希望将对sCommand和dBaseCommand的赋值放在Try-Catch块中,以防它们生成错误。

Try-Catch块是正确的,如果更新执行中出现错误(未注释时),应该调用_-writeaudit。但是,您还应该测试retVal以确保它是1(更新的行数)。如果为零,则不更新任何内容。如果大于零,则更新了多行


另外,您可能希望将对sCommand和dBaseCommand的赋值放在Try-Catch块中,以防它们生成错误。

您是否尝试了该代码?准备
参数化的
SQL语句,我建议使用
System.Diagnostics.TraceSource
或日志框架。我已经尝试了该代码。。如果有错误,它没有写在txt文件中。你试过代码吗?准备
参数化的
SQL语句,我建议使用
System.Diagnostics.TraceSource
或日志框架。我试过代码。如果有错误,它没有写在txt文件中。嗨,我试过catch…现在可以在文本文件中写错误消息了…但是,它不会循环发送每个错误消息。。如何将每个错误写入文本文件?我会在Catch块中放置一个断点,然后从那里开始单步查看发生了什么。嗨,我已经尝试了Catch…现在它可以将错误消息写入文本文件…但是,它不会循环每个错误消息。。如何使每个错误写入文本文件?我会在Catch块中放置一个断点,然后从那里开始单步查看发生了什么。