在用c#生成應用程式的時候,讀寫dbf時,open方法出錯
ERROR [IM002] [Microsoft][ODBC 驅動程式管理器] 未發現資料源名稱并且未指定預設驅動程式
以前這個程式是用着好好的,本次更新修改後測試發現這個問題,追根求源,原來本人是32位作業系統,現在裝了win7
64位的作業系統,從控制台-管理工具-ODBC驅動,打開後發現自己安裝的Microsoft Visual FoxPro Driver沒有在清單中
于是苦逼的程式猿就開始上網查資料,追找問題,不找到問題睡不着覺啊,呵呵
解釋如下:
win7
64位作業系統有兩個ODBC資料源(一個在system32下odbcad32.exe(控制台-管理工具裡的是這個),一個在SysWOW64下odbcad32.exe)
當我們用vs編譯程式時,預設的生成目标平台是anyCPU,如下圖(右鍵項目屬性裡),這樣程式運作時不知道應該使用哪個ODBC驅動,換成X86即可,于是就有了前面的提示

下面解釋下為什麼要選擇X86
在win764位作業系統中運作程式,預設是在system32裡去找驅動,因為64位作業系統要跟過去的32位系統相容,當運作32位的程式時,系統會到SysWOW64下面去找,是以就解決了ODBC的驅動問題,前提是電腦已經裝過驅動了哦