私はExcelのプラグインを作成し、ExcelDNAを初めて使用するC#を初めて使用しました。私はhttp://exceldna.codeplex.com/wikipage?title=Getting%20Startedで作業している例を得ました。 UDF "MultiplyThem"は期待どおりに動作します。ExcelDNAとMysql
mysqlデータベースからデータを取得するために、そのサイトのサンプル#3を変更するとします。 ExcelDna.Integration.dllだけでなく、プロジェクトのMySql.Data.dllも参照しています。私はこの文でそれをコンパイルします。
c:\windows\microsoft.net\framework\v2.0.50727\csc.exe /target:library /reference:ExcelDna.Integration.dll /reference:MySql.Data.dll TestLib.cs
私は(この場合は、「= MultiplyThem()」)でExcelは、追加して、私のUDFに入力を開始開くときに「MultiplyThem」と呼ばれる全くUDFはありません。なぜそれは突然仕事をやめたのですか?
using ExcelDna.Integration;
using MySql.Data.MySqlClient;
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
public class MyFunctions
{
[ExcelFunction(Description = "Grabs data from database", Category = "Useful functions")]
public static string MultiplyThem(string[] args)
{
string connString = "Server=localhost;Port=3306;Database=test;Uid=root;password=pword";
MySqlConnection conn = new MySqlConnection(connString);
MySqlCommand command = conn.CreateCommand();
command.CommandText = "SELECT field_value FROM customers";
try
{
conn.Open();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
string myvariable = "bad";
MySqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
myvariable = reader["field_value"].ToString();
}
return myvariable;
}
}
そして、私のTest1.dnaファイル(私は私のプロジェクトでの.NET Framework 4をターゲットにしています):
<DnaLibrary RuntimeVersion="v4.0">
<ExternalLibrary Path="TestLib.dll"/>
</DnaLibrary>
あなたはあなたのDLLを持っているフォルダにMySql.Data.MySqlClient DLLをドロップしようとしましたか?その依存関係を特定することが問題の原因であるかどうかを確認するのに役立ちます。 – Mathias
MySql.Data.dllを意味しましたか? (どこでもMySql.Data.MySqlClient.dllファイルが見つかりませんでした)。 MySql.Data.dllがフォルダにあり、参照しています。 – usr951