1

我有一个包含文件夹路径的数据库,我想找到某个文件夹包含的所有文件夹。我得到部分结果:

select * from pathTable where Path like ?||'%'

给定

c:\\root\\1
c:\\root\\1 Copy
c:\\root\\1\\2
c:\\root\\1\\3\\3a
c:\\root\\1\\4

什么时候 ?是“c:\\root\\1”,上面的查询返回

c:\\root\\1
c:\\root\\1 Copy

我也想获取所有子文件夹。我怀疑 Sqlite 在存储路径中绊倒了“\”。有谁知道我做错了什么?

4

1 回答 1

1

这是我必须做的,以允许通过 @ 符号“完全”转义字符串参数。

void printPaths()
    {
        string mypath = @"c:\\root\\1";
        string sql = ("select * from paths where pathdesc like @mypath");

        SQLiteCommand command = new SQLiteCommand(sql,m_dbConnection);
        command.Parameters.AddWithValue("@mypath", mypath+"%");

        SQLiteDataReader reader = command.ExecuteReader();
        while (reader.Read())
            Console.WriteLine("ID: " + reader["pathid"] + "\tpathdesc: " + reader["pathdesc"]);
        Console.ReadLine();
    }
于 2015-10-05T22:18:27.557 回答