2016-11-05 14 views
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]; 
      } 
     } 

これを達成するのに最も効率的ですか?

+0

あなたはVBAから返された「バリアント」に何を入れましたか? – Govert

+0

Govert、Excel DNA Googleグループであなたに返信しました。 – insomniac

答えて

0

テーブル全体を反復するのは、私が使用する方法です。

関連する問題