【问题标题】:Read a db file with C# FormApp and ADO.NET使用 C# FormApp 和 ADO.NET 读取 db 文件
【发布时间】:2021-12-20 06:38:28
【问题描述】:

我正在尝试使用 c# 表单应用程序 ADO.NET 读取一个简单的 sqlite db 文件(我使用 DB Browser 创建)。

    using System.Data.SqlClient;
    private void button1_Click(object sender, EventArgs e)
    {
        SqlConnection con = new SqlConnection();
        con.ConnectionString = ConfigurationManager.ConnectionStrings["DefaultC"].ToString();
        con.Open();
        MessageBox.Show("Connection Seccessfull!");
    } 

在 App.config 中:

    <connectionStrings>
      <add name="DefaultC" connectionString="ExamDB.db;Database=ExamDB;Trusted_Connection=true;MultipleActiveResultSets=true" />
    </connectionStrings>

收到此请求的错误。 请注意,我将 db 文件保存在 bin/debug 文件夹和主根目录中。

请帮忙

【问题讨论】:

  • 什么错误,你的调试器说什么?

标签: c# sqlite ado.net


【解决方案1】:

你使用的是sqlclient,但这是一个db文件,所以你应该使用Microsoft.Data.SQLite包。

这是修改后的代码:

SqliteConnection con = new SqliteConnection();
con.ConnectionString = ConfigurationManager.ConnectionStrings["DefaultC"].ToString();
con.Open();
MessageBox.Show("Connection Seccessfull!");

以及修改后的ConnectionString:

<connectionStrings>
    <add name="DefaultC" connectionString="Data Source=ExamDB.db" />
</connectionStrings>

【讨论】:

    【解决方案2】:

    这是一个基本问题:

    sqlite 数据库文件

    是的,明白了,但是为什么...

    使用 System.Data.SqlClient;

    这是 MS SQL Server 的客户端(根据文档)。显然它不起作用 - 不同的技术堆栈。

    使用https://www.nuget.org/packages/Microsoft.Data.Sqlite/5.0.11?_src=template 上提供的 Microsoft.Data.SqlLite 包

    【讨论】:

      猜你喜欢
      • 2015-10-02
      • 1970-01-01
      • 2010-12-16
      • 2011-06-21
      • 2013-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-17
      相关资源
      最近更新 更多