的作品,這是在這個問題的版本是
[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=790;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=790;maxbuffersize=2048;pagetimeout=5;readonly=true", "Sheet1$", DataAccessMethod.Sequential), TestMethod]
你使用了什麼'[DataSource ...]'字符串,錯誤是什麼*確切* – AdrianHHH
我確實使用過這個: [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
Are you using VS2010或2012年(或甚至2013年)? 有一個數據連接嚮導,你可以在VS2010中使用它來爲你創建字符串。如果你使用的是2012年,你必須自己編碼 - 我不確定它在2013年的工作原理。 – LuFaMa