簡體   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