代码之家  ›  专栏  ›  技术社区  ›  erotavlas

如何直接从dll访问sqlite数据库(不使用app.config)?

  •  0
  • erotavlas  · 技术社区  · 6 年前

    我正在尝试连接并使用dll中的sqlite数据库文件。到目前为止我有

            ASSEMBLY_PATH = ReturnThisAssemblyPath();
    
            DB_PATH = ASSEMBLY_PATH + @"\Datastore\" + DB_FILENAME;
            try
            {
                DbProviderFactory fac = System.Data.SQLite.SQLiteFactory.Instance;
    
                var conn = fac.CreateConnection();
    
                conn.ConnectionString = "data source =" + DB_PATH + @"\SQLiteDatabase.db";
                using (var m = new ReportsContext(conn))
                {
                    try
                    {
                        m.Reports.Add(new Datastore.Report() { reportTypeId = "1", reportType = "HL7", originalString = "orig10", processedString = "mod10" });
                        m.SaveChanges();
                    }
                    catch (System.Exception ex)
                    {
    
                    }
                    var res = m.Reports.Find(111);
                }
    
            }catch(System.Exception ex)
            {
    
            }
    

    我也尝试过 DbProviderFactory fac = System.Data.SQLite.EF6.SQLiteProviderFactory.Instance;

    但是当它试图添加一个记录时失败了,错误如下

    无法确定类型为的提供程序工厂的提供程序名称 “system.data.sqlite.sqlitefactory”。确保ADO.NET 提供程序已在应用程序配置中安装或注册。

    1 回复  |  直到 6 年前
        1
  •  0
  •   Konstantin    6 年前
    using (SQLiteConnection connection = new SQLiteConnection(string.Format("Data Source={0};Version=3;", <your_database_file_path>)))
    {
    
    }