在正确的语句中选择return empty
本文关键字:选择 return empty 语句 | 更新日期: 2023-09-27 17:59:28
我刚刚在SQLite.NET库中发现了一个错误。我有一个函数,它返回一个包含Select命令内容的字符串数组。代码如下:
string selectSQL = "SELECT id, token FROM Files WHERE (name LIKE 'Client.rar') AND (folder_id IN (SELECT id FROM Directories WHERE Path || name || ''' LIKE 'C:'Documents and Settings'Django''))";
SQLiteCommand selectCommand = new SQLiteCommand(selectSQL, sqliteCon);
SQLiteDataReader dataReader = selectCommand.ExecuteReader();
bool results = dataReader.Read();
if (results == true)
{
List<string> list = new List<string>();
for (int i = 0; i < dataReader.FieldCount; i++)
{
string field = dataReader[i].ToString();
list.Add(field);
}
string[] arr = list.ToArray();
dataReader.Close();
sqliteCon.Close();
return arr;
}
else
{
string[] arr = { "" };
return arr;
}
使用SQLite数据浏览器程序查看数据库。事实上,以前的软件中的查询是有效的,而在我的C#应用程序中,返回的结果是空的。
有人知道那在哪里吗?看起来一切都是正确的
问候!
我要继续,让它成为一个答案:
尝试将第一行更改为:
string selectSQL = @"SELECT id, token FROM Files WHERE (name LIKE 'Client.rar') AND (folder_id IN (SELECT id FROM Directories WHERE Path || name || ''' LIKE 'C:'Documents and Settings'Django''))";
字符串中有几个反斜杠,如果不转义它们,它们将导致问题。您可以选择将所有反斜杠替换为两个反斜杠(''
而不是'
),并且不将@放在字符串前面。