0
私は、ファイルパスとSQLクエリ(両方とも文字列として)をとってクエリの結果を返す関数を書いています。戻り値の型は単純にVariant型であるため、VBAでは非常に簡単です。私はExcelDNAを使用してDataTableを返すことができないので、これを行う正しい方法は何か不思議でした。C#でExcelDNAを使ってSQLクエリを書く
戻り値の型は2Dオブジェクト配列ですか?例えば
public static object[,] RunQueryCS(string SQLStatement, string FilePath)
「はい」の場合は、返品配列を取り込むために推奨される方法は何ですか?私はテーブル全体を反復し、各セルに一度に1つずつ移入する必要がありますか?以下のサンプルコード(dtはDataTable)
object[,] ret = new object[dt.Rows.Count + 1, dt.Columns.Count + 1];
int rowCount = 0;
foreach (DataRow row in dt.Rows)
{
rowCount++;
int colCount = 0;
foreach (DataColumn col in dt.Columns)
{
colCount++;
ret[rowCount, colCount] = row[col];
}
}
これを達成するのに最も効率的ですか?
あなたはVBAから返された「バリアント」に何を入れましたか? – Govert
Govert、Excel DNA Googleグループであなたに返信しました。 – insomniac