2013-06-06 88 views
0

在我們的應用程序中,我們將用戶上傳的Excel文件保存到數據庫,數據類型爲varBinary。但是,我們還想要取回數據並能夠解析數據以獲取數據(列,行)。從Excel中檢索varbinary數據爲Excel數據表

我已經知道如何讀的的Excel文件數據表從中獲取數據(如下面的代碼),但我不知道該怎麼做,如果數據源是類型varbinary

// Getting data from actual Excel File 
var connectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0; data source={0}; Extended Properties=Excel 8.0;", fileName); 

var adapter = new OleDbDataAdapter("SELECT * FROM [Sheet1$]", connectionString); 
var ds = new DataSet(); 

adapter.Fill(ds); 

foreach (DataTable dt in ds.Tables) { 
    Response.Write(dt.TableName); 
    int i= 0; 
    foreach (DataRow dr in dt.Rows) 
    { 
     if (i < 2) { i++; continue; } 
     foreach (DataColumn dc in dt.Columns) 
     { 
      Response.Write(dc.ToString() + ": " + dr[dc.ToString()] + "<br />"); 
     } 
     i++; 
    } 
} 

是否有可能做SqlServer的2012.NET 4?如果是,如何?

任何反饋將不勝感激。

問候, artsylar

回答

0

您發佈不保存Excel文件到表的代碼,這將Excel文件的內容插入表中。這些不一樣。

爲了將實際的Excel文件保存到錶行的varbinary成員中,請將該文件從磁盤讀取到字節數組中,然後將該字節數組存儲到varbinary中。對於Web應用程序,請使用文件上載控件將用戶希望存儲的文件檢索到Web服務器上的臨時文件存儲區。從那裏加載文件到數據庫。

重構文件,將varbinary數據檢索到字節數組中,然後將字節數組寫入磁盤文件。當然,該文件必須進行適當的命名。如果是Web應用程序,請在Web服務器上的本地臨時位置重新構建文件,然後發送到客戶端的瀏覽器。他們會看到一個「保存文件」對話框,這將允許他們將文件保存在本地機器上。

+0

我發佈的代碼實際上只是從Excel文件中獲取數據。它尚未將數據保存到數據庫。我想和excel文件一樣轉換成varbinary類型。 – artsylar

+0

我也能夠從varbinary數據創建一個Excel文件。但是現在我想要做的是能夠解析varbinary數據,而不需要先將它保存到Excel文件中。 – artsylar

+0

所以,你想存儲的Excel文件,或者你想存儲只是Excel文件的內容? – STLDeveloper

相關問題