2013-10-22 25 views
1

我想用我的編碼 - 用戶界面測試,但我的連接字符串無法正常工作。你能幫我解決嗎?我是怎樣的一個nuub這個:) 好吧,這裏 - >我的數據目錄爲C:\(直接在C盤) 和我的連接字符串是編碼的用戶界面測試Excel連接字符串目錄錯誤

[DataSource("System.Data.Odbc", "Dsn=Excel Files;Driver={Microsoft Excel Driver (*.xls)};dbq=C:\\Data1.xls;defaultdir=.;driverid=790;maxbuffersize=2048;pagetimeout=5;readonly=true", "Sheet1$", DataAccessMethod.Sequential), TestMethod]

這完美的作品。但我希望我的文件位於「D:\ TestProjects \ Coded2 \ DataFiles \ Data1.xls」,我無法做到這一點。出現一些錯誤和測試失敗。

我該如何寫我的數據目錄?

謝謝你的幫助。

+0

你使用了什麼'[DataSource ...]'字符串,錯誤是什麼*確切* – AdrianHHH

+0

我確實使用過這個: [DataSource(「System.Data.Odbc」,「Dsn = Excel Files; Driver = {Microsoft Excel Driver(* .xls)}; dbq = D:\ TestProjects \ Coded2 \ DataFiles \ Data1 .xls; defaultdir = .; driverid = 790; maxbuffersize = 2048; pagetimeout = 5; readonly = true「,」Sheet1 $「,DataAccessMethod.Sequential),TestMethod] and getting error:Unrecognized escape sequences – Aurora

+0

Are you using VS2010或2012年(或甚至2013年)? 有一個數據連接嚮導,你可以在VS2010中使用它來爲你創建字符串。如果你使用的是2012年,你必須自己編碼 - 我不確定它在2013年的工作原理。 – LuFaMa

回答

1

的作品,這是在這個問題的版本是

[DataSource("System.Data.Odbc", "Dsn=Excel Files;Driver={Microsoft Excel Driver (*.xls)};dbq=C:\\Data1.xls;defaultdir=.;driverid=790;maxbuffersize=2048;pagetimeout=5;readonly=true", "Sheet1$", DataAccessMethod.Sequential), TestMethod] 

失敗在註釋中顯示的版本,它是

[DataSource("System.Data.Odbc", "Dsn=Excel Files;Driver={Microsoft Excel Driver (*.xls)};dbq=D:\TestProjects\Coded2\DataFiles\Data1.xls;defaultdir=.;driverid=79‌​0;maxbuffersize=2048;pagetimeout=5;readonly=true", "Sheet1$", DataAccessMethod.Sequential), TestMethod] 

的顯著不同的是,反斜槓\加倍在因爲它們是字符串中的轉義字符而工作的那個中。 C#將每個反斜槓加上下面的字母作爲轉義序列。所以文件名D:\TestProjects\Coded2\DataFiles\Data1.xls\T,\C,\D\D,編譯器說它們中的一個或多個不被識別。

您也可以編寫帶有前導@的C#字符串,這意味着反斜槓意味着它們自己。所以非工作版本應該如果寫成

[DataSource("System.Data.Odbc", @"Dsn=Excel Files;Driver={Microsoft Excel Driver (*.xls)};dbq=D:\TestProjects\Coded2\DataFiles\Data1.xls;defaultdir=.;driverid=79‌​0;maxbuffersize=2048;pagetimeout=5;readonly=true", "Sheet1$", DataAccessMethod.Sequential), TestMethod] 
+0

這工作!非常感謝你:) – Aurora

+0

@Aurora如果問題已經得到解答,那麼你會把它標記爲已回答,否則人們可能會問這個問題還有什麼要求。 – AdrianHHH

+0

只是,對不起:) – Aurora