2017-11-28 19 views
0

これは、Dapperでoledbconnectionを使用して、ExcelテストシートのテストデータをExcelシートから読み込む最初の試みです。私が何をするにしても、私は無効な引数の例外を取得します。 UserDataのクラスでOLEDBconnection exception:C#の無効な引数です。

class ExcelDataAccess 
{ 
    public static string TestDataFileConnection() 
    { 
     var fileName = ConfigurationManager.AppSettings[@"Path\TestData.xlsx"]; 
     var con = string.Format(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source = {0}; Extended Properties='Excel 12.0 Xml;HDR=YES;'", fileName); 
     return con; 
    } 

    public static UserData GetTestData(int TestCaseNumber, string Key) 
    { 
     using (var connection = new OleDbConnection(TestDataFileConnection())) 
     { 
      connection.Open(); 
      var query = string.Format("select * from [DataSet$] where [TestCaseNumber]='{0}' and [Key]='{1}'", TestCaseNumber, Key); 
      var value = connection.Query<UserData>(query).FirstOrDefault(); 
      connection.Close(); 
      return value; 
     } 
    } 
} 

私が取得し、テーブルヘッダとパブリック変数を設定します。私はコードであるここで、列AとBの値に基づいて、列Cからのセルを選択する必要があります。

ありがとうございました!

+0

接続文字列にファイル名の値を引用符で囲むことができます。データソース= '{0}'。さらに、この値が評価される内容は明確ではありません。ConfigurationManager.AppSettings [@ "Path \ TestData.xlsx"] AppSettingsコレクションを誤って使用しているようです。 – uncoder

+0

どのラインに例外がありますか? – Steve

+0

引用符に関してはtrueですが、それは助けになりませんでした。 Path \ TestData.xlsxに関しては、それはシステム[@ "C:\ ... \ Scripts \ TestData.xlsx"]内のファイルへのパスです。 – goraccio

答えて

1

私はこの行を推測しているが問題です:

var fileName = ConfigurationManager.AppSettings[@"Path\TestData.xlsx"]; 

は、あなたが本当にPath\TestData.xlsxのキーで、あなたのapp.configのエントリを持っていますか?あなたのアプリの.configファイルの行を表示できますか?

間違ったキーを使用した可能性があります。アプリの.configファイルのappSettingsセクションのエントリを再度確認してください。

+0

あなたはありがとうございます!私はキーを追加しましたが、間違って宣言しました。 – goraccio