Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.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
C# 4.0 从单个文件执行多个SQLite语句时出现问题_C# 4.0_Sqlite_Pinvoke - Fatal编程技术网

C# 4.0 从单个文件执行多个SQLite语句时出现问题

C# 4.0 从单个文件执行多个SQLite语句时出现问题,c#-4.0,sqlite,pinvoke,C# 4.0,Sqlite,Pinvoke,我一直在使用p/Invoke编写一个关于SQLite的瘦包装器,我想让它能够从文件中读取语句(用于引导等)。我在一个文件中写了以下内容: CREATE TABLE Test (Col1 INTEGER, Col2 TEXT); INSERT INTO Test (Col1, Col2) VALUES (1, 'test1'); INSERT INTO Test (Col1, Col2) VALUES (2, 'test2'); 此文件通过file.ReadAllText()读取,通过sql

我一直在使用p/Invoke编写一个关于SQLite的瘦包装器,我想让它能够从文件中读取语句(用于引导等)。我在一个文件中写了以下内容:

CREATE TABLE Test
(Col1 INTEGER,
 Col2 TEXT);

INSERT INTO Test (Col1, Col2) VALUES (1, 'test1');
INSERT INTO Test (Col1, Col2) VALUES (2, 'test2');
此文件通过file.ReadAllText()读取,通过sqlite3_prepare()准备,并通过sqlite3_step()执行。此过程已成功准备并执行单行SQLite语句


发生的情况是创建了表,但两个insert语句都没有运行。为了能够在一个字符串中插入多个语句,我需要做什么?

尝试在每个语句之后使用
GO
。会是这样的,

CREATE TABLE Test
(Col1 INTEGER,
 Col2 TEXT);

GO

INSERT INTO Test (Col1, Col2) VALUES (1, 'test1');
INSERT INTO Test (Col1, Col2) VALUES (2, 'test2');

有关

的详细信息,请尝试在每条语句后使用一个
GO
。会是这样的,

CREATE TABLE Test
(Col1 INTEGER,
 Col2 TEXT);

GO

INSERT INTO Test (Col1, Col2) VALUES (1, 'test1');
INSERT INTO Test (Col1, Col2) VALUES (2, 'test2');

更多关于

的信息使我们明白了这一点。结果表明,sqlite3_step()一次只能执行一条语句。因此,您需要为字符串中的每个语句调用一次sqlite3_step()。这涉及到一点,因为无论执行了多少条语句,返回代码SQLITE_DONE都会返回;在执行字符串之前,我正在进行分号计数。或者,如果不想处理循环业务,可以使用sqlite3_exec()。结果表明,sqlite3_step()一次只能执行一条语句。因此,您需要为字符串中的每个语句调用一次sqlite3_step()。这涉及到一点,因为无论执行了多少条语句,返回代码SQLITE_DONE都会返回;在执行字符串之前,我正在进行分号计数。或者,如果您不想处理循环业务,可以使用sqlite3_exec()。

GO是SQL Server。问题是关于sqlite.GO是SQL Server的。问题是关于sqlite的。你知道System.Data.sqlite吗?我知道,但我想有编写P/Invoke包装器的经验-这是我第一个使用它的项目,进展非常顺利。你知道System.Data.sqlite吗?我知道,但我希望有编写P/Invoke包装器的经验——这是我的第一个使用它的项目,进展得出奇地好。