当mysql查询在vb.net中抛出mysqlexception时,到底会发生什么?

olhwl3o2  于 2021-06-20  发布在  Mysql
关注(0)|答案(0)|浏览(189)

我的问题是,我有以下代码将条目插入mysql数据库的表中:

Dim entryInserted As Boolean = True
Try
    connection.Open()
    If insertCommand.ExecuteNonQuery() = 0 Then
        entryInserted = False
        backgroundWorker.ReportProgress(0, ErrorOccurred & ": Could 
            not insert into database.")
    End If
Catch ex As MySqlException
    entryInserted = False
    backgroundWorker.ReportProgress(0, ErrorOccurred & ": An 
    error occurred while trying to insert to the database.")
Finally
    connection.Close()
End Try

insertcommand是insert-into语句。这个插入通常需要连续执行多次,因为它从文件中插入数据,然后从文件中删除该数据,所以我试图确保如果程序的连接丢失并且抛出mysqlexception,不会从文件中删除数据,以避免丢失此数据,并将其保存以备连接可用时使用。由于这个原因,我在插入数据的过程中禁用了本地连接,以确保它正常工作。但是,我假设如果抛出mysqlexception,那么这意味着数据没有插入到表中(因此在本例中我将entryinserted改为false)。但是,当我查看表中插入的最后一个条目的数据和查询的数据时,我发现它们是相同的,在查询期间,连接被禁用,导致mysqlexception?这意味着即使在try块中执行此查询时抛出mysqlexception,也会插入数据吗?所以我想知道,当抛出mysqlexception时会发生什么,因为显然这不一定能保证查询不成功?在这种情况下,如何确保查询不成功?我之所以想知道这一点,是因为我想避免在连接丢失的情况下丢失数据,但我也不想保存已经插入的数据,从而导致表中的信息重复。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题