繁体   English   中英

使用ExcelDNA和System.Data.SQLite

[英]Using ExcelDNA and System.Data.SQLite

我在使用ExcelDNA时没有问题,在独立exe中使用System.Data.SQLite也没有问题。 但是,我无法使两者一起使用来创建Excel插件dll(使用Visual Studio 2012和NuGet来安装SQLite .NET包),以用于查询SQLite数据库。 不知道是否没有解决任何SQLite依赖项。 我得到的全部是:“未知模块”中发生“类型为'System.IO.FileLoadException'的第一次机会异常”,并在Excel单元格中给出了VALUE错误。 因此,我想知道这里是否有人可以成功地同时使用这两者,以及是否存在一些我不知道的陷阱。 我正在为此测试使用Northwind SQLite数据库


请尝试以下步骤:

  • 创建一个新的C#类库项目
  • PM>安装包Excel-DNA
  • PM>安装包System.Data.SQLite.Core
  • 将Northwind.db文件(从您指向的.sql文件创建)放入C:\\ Temp
  • 在您的项目中添加以下代码:

     using System; using System.Data; using System.Data.SQLite; using ExcelDna.Integration; namespace UsingSQLite { public static class MyFunctions { static SQLiteConnection _connection; static SQLiteCommand _productNameCommand; private static void EnsureConnection() { if (_connection == null) { _connection = new SQLiteConnection(@"Data Source=C:\\Temp\\Northwind.db"); _connection.Open(); _productNameCommand = new SQLiteCommand("SELECT ProductName FROM Products WHERE ProductID = @ProductID", _connection); _productNameCommand.Parameters.Add("@ProductID", DbType.Int32); } } public static object ProductName(int productID) { try { EnsureConnection(); _productNameCommand.Parameters["@ProductID"].Value = productID; return _productNameCommand.ExecuteScalar(); } catch (Exception ex) { return ex.ToString(); } } } } 
  • 按F5加载并在Excel中运行。

  • 在单元格中尝试= ProductName(1)。 您应该看到“ Chai”或详细的异常消息。

它可以在我的机器上工作:-)

请注意,由于打包工具不支持混合程序集,因此您将无法使用ExcelDnaPack将SQLite程序集打包到.xll文件中。

我还在GitHub上添加了一个示例项目: https//github.com/Excel-DNA/Samples/tree/master/UsingSQLite

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM