c# - SQlite 连接中的非法字符 (C#)
问题描述
我是 SQL/SQLite 的新手,但是当我尝试运行此方法来搜索 SQlite DB 时,它在 con.Open() 上失败,说“系统参数异常:路径中的非法字符”。我已经尝试删除 Data 和 Source 之间的空格,并且我也尝试将 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();
}
}
解决方案
看起来您需要转义反斜杠。
string cs = "Data Source=C:\\flowData.db;Version=3;";
您还可以使用逐字字符串
string cs = @"Data Source=C:\flowData.db;Version=3;";
原始字符串中有一个\f
字符是非法路径字符。
推荐阅读
- java - 如何使用 ReactiveUserDetailsService springboot 通过 Rest API 登录
- java - 如何确定 WebSphere 应用程序是否真的在进行 XA 事务?
- assembly - 为什么 0xffffffc 是一个无效的访问地址?
- javascript - Ngbuild 带有 --prod 标志时出现 Angular5 错误
- git - 无法从 Eclipse 中的 Bitbucket 下载项目,出现“传输错误”
- python - FOR 循环的语法无效
- ios - 来自移动设备的公共 IP 地址
- simulation - omnet 如何处理来自未来事件集的消息?
- odata - 如何在 sap ui5 中将一个变量的值从一个控制器传递到另一个控制器
- python - 将 lineEdit 值设置为另一个类中的标签(Pyqt4)