2011-04-25 53 views
0

如何在語句中將D:\temp\test.xls替換爲filePathC#中的OleDbConnection源變量#

我可以準確地獲得filePath(使用OpenFileDialog,然後我可以方便地找到我的.xls文件,不再使用硬編碼),但是當我插入變量filePath作爲Style2時,它不起作用。我怎樣才能解決這個問題 ?謝謝。

STYLE1

OleDbConnection dbConnection = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\temp\test.xls;Extended Properties=""Excel 8.0;HDR=Yes;"""); 

藍紫魅力

OleDbConnection dbConnection = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=filePath;Extended Properties=""Excel 8.0;HDR=Yes;"""); 

[更新] 的我的代碼,因爲這部分的一部分,

DataTable fooData = new DataTable(); 

      OleDbConnection dbConnection = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=filePath;Extended Properties=""Excel 8.0;HDR=Yes;"""); 

      dbConnection.Open(); 
      try 
      { 
       OleDbCommand dbCommand = new OleDbCommand("SELECT * FROM [maleSheet$]", dbConnection); 
       OleDbDataReader dbReader = dbCommand.ExecuteReader(); 

       int RankIndex = dbReader.GetOrdinal("Rank"); 

       while (dbReader.Read()) 
       { 
        string rank = dbReader.GetValue(RankIndex).ToString(); 
        ////.... 
       } 
      } 

錯誤如下在行OleDbDataReader dbReader = dbCommand.ExecuteReader();

類型「System.Data.OleDb.OleDbException」 未處理的異常出現在system.data.dll

+0

什麼確切的錯誤和你在哪裏在連接字符串 – 2011-04-25 06:00:38

+0

@Kalyan越來越,我更新了我的帖子。謝謝。 – 2011-04-25 06:15:05

回答

3
OleDbConnection dbConnection = new OleDbConnection(String.Format(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=""Excel 8.0;HDR=Yes;""", filePath)); 
+0

它工作得很好。非常感謝。 – 2011-04-25 06:01:42

+1

NP。您必須記住C#不會執行自動變量替換,而不像PHP那樣。 – 2011-04-25 06:04:11