0

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 Data Browser プログラムを使用してデータベースを表示するには。実際のところ、以前のソフトウェアのクエリは機能し、私の C# アプリケーションでは空の結果が返されます。

それがどこにあるか知っている人はいますか?すべてが正しいようです

ご挨拶!

4

1 に答える 1

1

私は先に進んでこれを答えにするつもりです:

最初の行を次のように変更してみてください。

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\'))";

文字列にはいくつかの円記号があり、それらをエスケープしないと問題が発生します。オプションで、すべての円記号を(\\ではなく\)2つの円記号に置き換え、文字列の前に@を付けないようにすることができます。

于 2013-02-15T18:17:11.753 に答える