[英]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数据库 。
请尝试以下步骤:
在您的项目中添加以下代码:
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中运行。
它可以在我的机器上工作:-)
请注意,由于打包工具不支持混合程序集,因此您将无法使用ExcelDnaPack将SQLite程序集打包到.xll文件中。
我还在GitHub上添加了一个示例项目: https : //github.com/Excel-DNA/Samples/tree/master/UsingSQLite
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.