C# 以Excel DataTable的形式从SQL Server检索varbinary数据

C# 以Excel DataTable的形式从SQL Server检索varbinary数据,c#,asp.net,excel,sql-server-2012,C#,Asp.net,Excel,Sql Server 2012,在我们的应用程序中,我们使用varBinary数据类型将用户上传的Excel文件保存到数据库中。但是,我们还希望检索回数据,并能够对其进行解析以获取其中的数据(列、行) 我已经知道如何将Excel文件读入数据表以从中获取数据(如下面的代码),但如果数据源的类型为varbinary,我不知道如何操作 // Getting data from actual Excel File var connectionString = string.Format("Provider=Microsoft.Jet.

在我们的应用程序中,我们使用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++;
    }
}
//从实际Excel文件中获取数据
var connectionString=string.Format(“Provider=Microsoft.Jet.OLEDB.4.0;数据源={0};扩展属性=excel8.0;”,文件名);
var adapter=新的OleDbDataAdapter(“从[Sheet1$]中选择*”,connectionString);
var ds=新数据集();
适配器。填充(ds);
foreach(ds.表中的数据表dt){
Response.Write(dt.TableName);
int i=0;
foreach(数据行dr在dt.行中)
{
如果(i<2){i++;continue;}
foreach(数据列dc在dt.列中)
{
Response.Write(dc.ToString()+“:“+dr[dc.ToString()]+”
); } i++; } }
可以使用SQLServer2012和.NET4吗?如果是,如何进行

如有任何反馈,将不胜感激

问候,,
artsylar

您发布的代码不会将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的内容,然后查询它。对吗?