最近在做一個上傳的功能,記錄下自己的感受。
剛開始我用的是excel上傳;但是發(fā)現(xiàn)客戶服務器有用64位的,使用的時候程序會報錯;
未在本地計算機上注冊“Microsoft.Jet.OLEDB.4.0”提供程序
經查閱資料,發(fā)現(xiàn)是excel對64位的兼容性很差;64位操作系統(tǒng)不支持Microsoft OLE DB PRovider for Jet驅動程序,也不支持更早的Microsoft access Driver (*.mdb)方式連接。所以用于Access 和 Excel 數(shù)據(jù)庫的 MicrosoftOLE DB Provider for Jet 在 64 位版本中不可用,也就是說,如下兩種連接字符串都已經無法正常工作了:
"Provider=Microsoft.Jet.OLEDB.4.0;DataSource="&Server.mappath(db)"driver=Microsoft AccessDriver (*.mdb);DBQ="&Server.MapPath(db)
我查找的解決方案中最多的是把程序在vs下重新編譯:“生成-配置管理器-點擊anyCPU-選擇新建-創(chuàng)建x86”;解決。剛解決了這個問題,又一個問題出來了,另一個客戶的服務器上沒有裝office;這又要怎么辦呢,再求救度娘,發(fā)現(xiàn)要將excel的幾個dll打包到自己的程序中,可素可素
這樣也太麻煩點了吧。這次我沒有照做,而是選擇的改變上傳的文件格式;本來就是一塊兒很小的東西,沒有必要把它搞這么麻煩。我選擇了csv文件。在網上有現(xiàn)成的
讀文件代碼;直接用就行了。但是又遇到問題了,編碼問題;用記事本或者寫字板打開都沒問題;但是用excel打開的時候問題來了,一堆亂碼。腫么回事捏捏捏!原來excel打開默認的編碼方式是ANSI,而ANSI標準不太統(tǒng)一,程序處理中文一般采用gb2312或者gbk,等;不過這個小問題對于我的項目來說可以忽略;讓客戶選擇其他打開方式就行了,也沒再往下探索了,你,知道嗎?
總結:在使用某種特定技術之前應該要考慮它的使用平臺和可移植性。
新聞熱點
疑難解答