0

在我们的应用程序中,我们将用户上传的Excel文件保存到具有varBinary数据类型的数据库中。但是,我们还希望检索数据并能够解析它以获取其中的数据(列、行)。

我已经知道如何将Excel文件读入DataTable以从中获取数据(如下面的代码),但如果DataSource的类型为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?如果是,如何?

任何反馈将不胜感激。

问候,艺术

4

1 回答 1

0

您发布的代码不会将 excel 文件保存到表格中,而是将 excel 文件的内容保存到表格中。这些不一样。

为了将实际的 Excel 文件保存到表行的 varbinary 成员中,请将文件从磁盘读取到字节数组中,然后将字节数组存储到 varbinary 中。对于 Web 应用程序,使用文件上传控件将用户希望存储的文件检索到 Web 服务器上的临时文件存储区域。从那里将文件加载到数据库。

要重构文件,请将 varbinary 数据检索到字节数组中,然后将字节数组写入磁盘文件。当然,该文件必须适当命名。对于 Web 应用程序,在 Web 服务器上的本地临时位置重构文件,然后发送到客户端的浏览器。他们将看到一个“保存文件”对话框,允许他们将文件本地保存在他们的机器上。

于 2013-06-06T07:21:16.777 回答