У меня нет проблем с использованием ExcelDNA, и у меня также нет проблем с использованием System.Data.SQLite в автономном exe. Howover Мне не удалось заставить обе работать вместе для создания dll Excel Addin (с использованием Visual Studio 2012 и NuGet для установки пакета SQLite .NET), который будет использоваться для запроса базы данных SQLite. Не уверен, что какие-либо SQLite-зависимости не будут решены. Все, что я получаю: «Первое исключение исключений типа« System.IO.FileLoadException »произошло в Unknown Module.and давая ошибку VALUE в ячейке Excel. Так было интересно, может ли кто-нибудь здесь успешно использовать оба вместе, и если есть какие-то ошибки, которые я не знаю. Для этого теста я использую Northwind SQLite database.Использование ExcelDNA и System.Data.SQLite
0
A
ответ
0
Выполните следующие действия:
- Создайте новый проект библиотеки классов C#
- PM> Install-Package Excel-ДНК
- PM> Install-Package 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.
- Try = ProductName (1) в ячейке. Вы должны увидеть «Chai» или подробное сообщение об исключении.
Он работает на моей машине :-)
Обратите внимание, что вы не будете в состоянии упаковать сборку SQLite в .xll файл с помощью ExcelDnaPack, так как инструмент упаковки не поддерживает смешанные сборки.
Я также добавил образец проекта для этого на GitHub: https://github.com/Excel-DNA/Samples/tree/master/UsingSQLite