我的项目是WPF因此配置文件是App.Config。配置文件中增加:
<add name="SQLiteConnection" connectionString="Data Source=C:\Users\Administrator\AppData\Local\Hunter\hunter.sqlite;" providerName="System.Data.SQLite" />
Data Source后面的是路径
完整文件
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<connectionStrings>
<add name="SQLiteConnection" connectionString="Data Source=C:\Users\Administrator\AppData\Local\Hunter\hunter.sqlite;" providerName="System.Data.SQLite" />
<add name="SQLServerConnection" connectionString="Data Source=127.0.0.1;Initial Catalog=hunter;Persist Security Info=True;User ID=sa;Password=sa;" providerName="System.Data.SqlClient" />
<add name="MySqlConnection" connectionString="Server=127.0.0.1;Port=3306;Database=test;Uid=root;Pwd=123123;" providerName="MySql.Data.MySqlClient"/>
</connectionStrings>
</configuration>
在C#中调用
var connectionString = ConfigurationManager.ConnectionStrings["SQLiteConnection"].ConnectionString;
var db = new Database(connectionString, "System.Data.SQLite");
// 执行数据库操作
// ...
// 关闭数据库连接
db.CloseSharedConnection();
OK调用完毕,但是运行会保存。如下错误:
System.ArgumentException:“The specified invariant name 'System.Data.SQLite' wasn't found in the list of registered .NET Data Providers.”
这个文件是NetCore版本后出现的我用的是NET6。这个错误的解决是添加数据库的Providers代码:
DbProviderFactories.RegisterFactory("System.Data.SQLite", SQLiteFactory.Instance);
直接引用会报错需要引入System.Data.SQLite核心类在Nuget中引用效果如下:
OK引命名空间引入完毕后完成。