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

标签 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

最佳答案

看起来您需要转义反斜杠。

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

您还可以使用逐字字符串

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

原始字符串中有一个\f字符,该字符是非法路径字符。

关于c# - SQlite 连接中的非法字符 (C#),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54383328/

相关文章:

c# - 在 form1.cs 和 program.cs 之间传递数据

c# - 直接在 XAML 中使用 .resw 文件中的字符串

c# - 更新 Windows 窗体中的 UI 对象

database - 什么时候 table 太多?

sqlite - 在哪里以及如何使用 SQLITE 的 NULLIF(X,Y) 函数?

c# - 我可以在 C# 中创建使用未知类型参数声明方法的接口(interface)或抽象类吗?

java - OutputStream 到 DB2 数据库表的 BLOB 列

android - 在 SQLite 中重新查询或再次触发查询之间进行选择

sql - 定义外键和表关系对写查询有影响吗?

database - 可以同时从多个程序打开和访问 berkeley 数据库吗?