如何在SQL数据库中插入记录并显示输入的记录数?

如何在SQL数据库中插入记录并显示输入的记录数?,sql,vb.net,insert-into,Sql,Vb.net,Insert Into,使用VB.NET,我试图将27019条记录插入到SQL数据表中。单击“插入按钮”后,插入过程进展顺利,但很耗时。因此,我希望能够通过在标签/文本框中显示记录的进度来查看记录的输入时间。例如,当插入第一条记录时,文本应为输入的1/27019记录,对于下一条记录,文本应为输入的2/27019记录,依此类推 提前感谢。有几种方法可以做到这一点,但它们可能会增加总加载时间。您可以将insert拆分为多个批,并在每个完成的批之后触发一个事件,但这显然需要更长的时间。或者,如果没有其他进程同时写入此表,则可

使用VB.NET,我试图将27019条记录插入到SQL数据表中。单击“插入按钮”后,插入过程进展顺利,但很耗时。因此,我希望能够通过在标签/文本框中显示记录的进度来查看记录的输入时间。例如,当插入第一条记录时,文本应为输入的1/27019记录,对于下一条记录,文本应为输入的2/27019记录,依此类推


提前感谢。

有几种方法可以做到这一点,但它们可能会增加总加载时间。您可以将insert拆分为多个批,并在每个完成的批之后触发一个事件,但这显然需要更长的时间。或者,如果没有其他进程同时写入此表,则可以在开始插入之前触发一个单独的线程,该线程查询插入了多少条记录。您可以对此查询使用withnolock,也可以将事务级别设置为read uncommitted。但不能保证这些脏读总是返回正确的行数,因为进度条可能足够精确。

数据从何而来?我建议使用SQLBulkCopy类,而不是插入到。。在循环中执行。@Maciej Los问题不在于插入命令功能。它工作得很好。我想在标签或文本框中逐步显示到目前为止已输入了多少条记录…输入了1/27019条记录…等等。当这部分数据插入数据库时,可能会导致数据库崩溃。因此,我的建议仍然有效;在运行循环进程时更新GUI标签或文本框有点棘手,有关一种方法的信息。顺便说一句,您可以捕获通过SqlRowsCopied事件插入的行: