相关疑难解决方法(0)

使用C#SQLite DataReader和附加数据库迭代结果的性能问题

我使用System.Data.SQLite,并SQLiteDataReader在我的C#项目.在使用附加数据库获取查询结果时,我遇到了性能问题.

以下是将文本搜索到两个数据库的查询示例:

ATTACH "db2.db" as db2;

SELECT MainRecord.RecordID,
((LENGTH(MainRecord.Value) - LENGTH(REPLACE(UPPER(MainRecord.Value), UPPER("FirstValueToSearch"), ""))) / 18) AS "FirstResultNumber",
((LENGTH(DB2Record.Value) - LENGTH(REPLACE(UPPER(DB2Record.Value), UPPER("SecondValueToSearch"), ""))) / 19) AS "SecondResultNumber"
FROM main.Record MainRecord
JOIN db2.Record DB2Record ON DB2Record.RecordID BETWEEN (MainRecord.PositionMin) AND (MainRecord.PositionMax)
WHERE FirstResultNumber > 0 AND SecondResultNumber > 0;

DETACH db2;
Run Code Online (Sandbox Code Playgroud)

使用SQLiteStudio或SQLiteAdmin执行此查询时,此工作正常,我在几秒钟内得到结果(记录表可以包含数十万条记录,查询返回36000条记录).

在我的C#项目中执行此查询时,执行也需要几秒钟,但运行所有结果需要几个小时.

这是我的代码:

// Attach databases

SQLiteDataReader data = null;

using (SQLiteCommand command = this.m_connection.CreateCommand())
{
    command.CommandText = "SELECT...";
    data = command.ExecuteReader();
}

if (data.HasRows)
{
    while (data.Read()) …
Run Code Online (Sandbox Code Playgroud)

c# sqlite performance datareader system.data.sqlite

9
推荐指数
1
解决办法
1275
查看次数

如何解决sqlite和c#中的"'"问题?

我正在使用Sqlite在Microsoft Visual C#2008 Express中工作.

我知道我的文本中的一个叛逆者(')在查询中有问题.我的问题是,我认为我可以用\'替换它.它似乎没有工作......这是我的代码的一个例子:

string myString = "I can't believe it!";
cmd.CommandText = "Insert into myTable (myid,mytext) values (1,'" + myString.Replace("'","\\'") + "');";
Run Code Online (Sandbox Code Playgroud)

我得到的错误是:SQLite错误:接近"t":语法错误

我尝试过其他一些替换品......就像其他的斜线一样.我将我的字符串和我的字符串的替换版本写入控制台,以确保它正确出现.

我在这里犯了什么愚蠢的错误?

谢谢!

-Adeena

c# sqlite string

6
推荐指数
2
解决办法
1万
查看次数