2013-06-06 57 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