【问题标题】:Can't create connection to an sqlite DB无法创建与 sqlite 数据库的连接
【发布时间】:2015-09-22 03:40:37
【问题描述】:

我编写了一个代码,可以在执行软件的文件夹中自动创建数据库。数据库已成功创建,但是当我为连接创建对象时,会显示此异常:

System.Data.SqlClient.SqlException (0x80131904):尝试建立与 SQL Server 的连接时出现网络错误或特定实例。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。 (提供者:命名管道提供者,错误:40 - 无法打开与 SQL Server 的连接)---> System.ComponentModel.Win32Exception (0x80004005):找不到指定的文件

在这一行:

con.Open();

但我认为问题在于这个连接声明:

static SqlConnection con = new SqlConnection(
        "Server=localhost;Database=AppDB.sqlite;");

我做错了什么?

更新详情:

 SqlCommand command = new SqlCommand(@"INSERT INTO Team (name,code, shortName, squadMarketValue, 
                crestUrl, link_self, link_fixtures, link_players, caption) VALUES (@name,
                @code,@shortName,@squadMarketValue,@crestUrl,@link_self,@link_fixtures,
                @link_players,@caption)", con);

您如何看到我正在使用参数化查询,以及我是否使用此对象:

static SQLiteConnection m_dbConnection = new SQLiteConnection("Data Source=SoccerForecast.sqlite;Version=3;");

con 变量带有红色下划线,编译器告诉我:

无法在SqlConnection中转换SqliteConnection

【问题讨论】:

  • 这条信息就是你的答案。您正在尝试连接到 SQL Server (microsoft)。你需要一个 SQLite 连接器。见这里:stackoverflow.com/questions/3718362/…
  • 我已经更新了问题,我想与我的 sqlite 数据库建立连接

标签: c# sqlite connection-string


【解决方案1】:

您的连接错误。您没有在问题中指定您尝试连接的数据库类型。当您使用 sql 连接对象时,会提到 SQLite。 sql 连接对象用于连接到 ms sql server 数据库。如果您真的想连接到 ms sql server 数据库,则需要更改连接字符串以提供用户名/密码或 Trusted_Connection=True 以使用您的 Windows 帐户。

但是,如果您尝试连接的数据库是 SQLite DB,则必须使用不同的连接对象。 Thisthis SO question 提供了有关可用库和示例的答案,这些库将解释如何创建与 SQLite 数据库的连接。

当您需要生成连接字符串时,站点connectionstring.com 也是一个很好的资源。

【讨论】:

  • 我想在我的电脑上建立与本地数据库的连接,我的数据库在.sqlite 扩展名中
  • 然后您需要使用带有 sqlite 连接字符串的 sqlite 连接器。 SqlConnection 是一个 ms sql 本机客户端,不能与其他数据库一起使用。
  • 我已经更新了问题。我不知道如何使用参数化查询,因为如果我执行这个: command.Parameters.Add("@name",DbType.String).Value = item.name;我得到一个查询失败插入。
  • 你还需要把你的命令对象改成sqlite版本
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-17
  • 1970-01-01
  • 2023-03-03
相关资源
最近更新 更多