使用ExcelDNA我没有问题,在独立的exe中使用System.Data.SQLite也没有问题。 然而,我无法共同创建用于查询SQLite数据库的Excel Addin dll(使用Visual Studio 2012和NuGet安装SQLite .NET包)。 不确定是否有任何SQLite依赖项未得到解决。我得到的全部内容:"类型' System.IO.FileLoadException'"发生在未知模块中,并在Excel单元格中出现VALUE错误。 所以想知道这里是否有人会成功地使用这两者,如果有一些问题我不知道。 我正在使用Northwind SQLite database进行此测试。
答案 0 :(得分:0)
尝试以下步骤:
在您的项目中添加此代码:
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