SQlite连接(C#)中的非法字符

时间:2019-01-26 22:18:20

标签: c# database sqlite

我是SQL / SQLite的新手,但是当我尝试运行此方法搜索SQlite DB时,它在con.Open()上失败,提示“系统参数异常:路径中的非法字符”。我试过删除数据和源之间的空间,并尝试使C:也变为小写。我正在使用在Nuget软件包管理器中找到的SQLite

private void searchDB(string search1, string search2)
{
    //build connection to sqlite
    string cs = "Data Source=C:\flowData.db;Version=3;";
    using (SQLiteConnection con = new SQLiteConnection(cs))
    {
        con.Open();

        string stm = "SELECT * FROM  locationData";

        using (SQLiteCommand cmd = new SQLiteCommand(stm, con))
        {
            using (SQLiteDataReader rdr = cmd.ExecuteReader())
            {
                while (rdr.Read())
                {
                    string poll = rdr["FacilityName"].ToString();
                    if (poll.Contains(search1) || poll.Contains(search2))
                    {
                        searchResult.Items.Add(poll);
                    }
                }
            }
        }
        con.Close();
    }
}

错误: Error

1 个答案:

答案 0 :(得分:1)

您似乎需要转义反斜杠。

string cs = "Data Source=C:\\flowData.db;Version=3;";

您也可以使用逐字字符串

string cs = @"Data Source=C:\flowData.db;Version=3;";

原始字符串中包含一个\f字符,这是一个非法的路径字符。