【问题标题】:Retrieve varbinary data from SQL Server as Excel DataTable从 SQL Server 检索 varbinary 数据作为 Excel DataTable
【发布时间】:2013-06-06 07:08:43
【问题描述】:

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

我已经知道如何将 Excel 文件读入 DataTable 以从中获取数据(如下面的代码),但我不知道如何如果 DataSourcevarbinary 类型,则执行此操作。

// 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?如果是,怎么做?

任何反馈将不胜感激。

问候, 艺人

【问题讨论】:

    标签: c# asp.net excel sql-server-2012


    【解决方案1】:

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

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

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

    【讨论】:

    • 我发布的代码实际上只是从 Excel 文件中获取数据。它尚未将数据保存到数据库中。我想将excel文件转换为varbinary类型。
    • 我还能够从 varbinary 数据创建一个 Excel 文件。但是我现在要做的是能够解析varbinary数据,而无需先将其保存到Excel文件到硬盘中。
    • 那么您是要存储 excel 文件,还是只存储 excel 文件的内容?
    • 我只想获取varbinary数据(原为excel文件)的内容并展示给用户。
    • 所以如果我理解正确的话,您已经将 Excel 文件的内容存储在 varbinary 中,然后您希望在网页上的网格或表格中显示这些数据,但是您不想采取创建 excel 文件的中间步骤来接受 varbinary 的内容然后查询它。对吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多