Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/85.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Net将大量数据写入SQLite数据库_Sql_Vb.net_Sqlite - Fatal编程技术网

Net将大量数据写入SQLite数据库

Net将大量数据写入SQLite数据库,sql,vb.net,sqlite,Sql,Vb.net,Sqlite,我有大量的行(到目前为止从10.000到200.000,可能会更多),我想保存在SQLite数据库中,因为数据只在本地使用。 行由包含分隔符的单个字符串组成。根据我从何处提取数据,行填充在2到10个字段之间。 因此,我每行有不同数量的字符串,并且需要一个可以接受不同数量字符串的方法。将始终为提取的数据专门创建一个表。 我目前有一个方法,实际上是工作,但内在的缓慢 基本上,我根据必须传递的变量量构造一个SQL命令字符串。为此,我将一个简单的insert命令包装在变量周围(我在其中定义了字段),然后

我有大量的行(到目前为止从10.000到200.000,可能会更多),我想保存在SQLite数据库中,因为数据只在本地使用。 行由包含分隔符的单个字符串组成。根据我从何处提取数据,行填充在2到10个字段之间。 因此,我每行有不同数量的字符串,并且需要一个可以接受不同数量字符串的方法。将始终为提取的数据专门创建一个表。 我目前有一个方法,实际上是工作,但内在的缓慢

基本上,我根据必须传递的变量量构造一个SQL命令字符串。为此,我将一个简单的insert命令包装在变量周围(我在其中定义了字段),然后传递每一行。在30行中效果很好,但在2万行中效果不太好

有人能让我走上继续下去的轨道吗

示例代码:

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很高兴它有所帮助