Net将大量数据写入SQLite数据库
我有大量的行(到目前为止从10.000到200.000,可能会更多),我想保存在SQLite数据库中,因为数据只在本地使用。 行由包含分隔符的单个字符串组成。根据我从何处提取数据,行填充在2到10个字段之间。 因此,我每行有不同数量的字符串,并且需要一个可以接受不同数量字符串的方法。将始终为提取的数据专门创建一个表。 我目前有一个方法,实际上是工作,但内在的缓慢 基本上,我根据必须传递的变量量构造一个SQL命令字符串。为此,我将一个简单的insert命令包装在变量周围(我在其中定义了字段),然后传递每一行。在30行中效果很好,但在2万行中效果不太好 有人能让我走上继续下去的轨道吗 示例代码:Net将大量数据写入SQLite数据库,sql,vb.net,sqlite,Sql,Vb.net,Sqlite,我有大量的行(到目前为止从10.000到200.000,可能会更多),我想保存在SQLite数据库中,因为数据只在本地使用。 行由包含分隔符的单个字符串组成。根据我从何处提取数据,行填充在2到10个字段之间。 因此,我每行有不同数量的字符串,并且需要一个可以接受不同数量字符串的方法。将始终为提取的数据专门创建一个表。 我目前有一个方法,实际上是工作,但内在的缓慢 基本上,我根据必须传递的变量量构造一个SQL命令字符串。为此,我将一个简单的insert命令包装在变量周围(我在其中定义了字段),然后
For Each row As string In t
line = Replace(row, "|", "','")
cmd.CommandText = cmd_string + line + "')"
cmd.ExecuteNonQuery()
Next
示例构造命令:
"INSERT INTO MYTABLE(COLUMN1, COLUMN2) VALUES ('IT ','DE')"
我认为这个方法是一派胡言
任何建议都将不胜感激
/besides一个接一个地执行数千个插入确实非常慢。它将极大地帮助您将所有插入内容打包到事务中
使用t作为SQLiteTransaction=sqlcon.BeginTransaction'sqlcon作为SQLiteConnection
对于t中作为字符串的每一行
行=替换(行“|”、“,”)
cmd.CommandText=cmd_字符串+行+“')”
cmd.ExecuteNonQuery()
下一个
t、 提交()
终端使用
你基本上收集所有你想做的插入,当你完成后,它们都在一个大的swoosh中执行。这大大加快了速度
以下是有关事务的教程:
您是否可以编辑您的问题,以包含一些输入行,作为显示要涵盖的变化的示例?另外,您所说的“始终会为所提取的数据专门创建一个表”是什么意思?@mall3i很高兴它有所帮助