C# 需要将Excel文件值作为BLOB数据类型存储在SQL DB中,并作为XML检索

C# 需要将Excel文件值作为BLOB数据类型存储在SQL DB中,并作为XML检索,c#,asp.net,xml-parsing,blob,C#,Asp.net,Xml Parsing,Blob,我需要将Excel文件值作为BLOB数据类型存储到SQL数据库 我的EXCEL文件包含以下值SCENSUSDATA.xls: 我的数据库表设计TestBlob: 用于文件上载的我的ASP页面代码: 如果运行此代码,数据库表中将显示以下结果: 现在,我尝试使用以下查询将blobValue转换为XML: 我收到以下错误: 我需要知道我的代码是否正确 是否尝试将excel文件另存为。xlsxls不是xml派生格式,无法转换directly@oleksii我尝试转换xls->BLOB->xml@Mikh

我需要将Excel文件值作为BLOB数据类型存储到SQL数据库

我的EXCEL文件包含以下值SCENSUSDATA.xls:

我的数据库表设计TestBlob:

用于文件上载的我的ASP页面代码:

如果运行此代码,数据库表中将显示以下结果:

现在,我尝试使用以下查询将blobValue转换为XML:

我收到以下错误:


我需要知道我的代码是否正确

是否尝试将excel文件另存为。xlsxls不是xml派生格式,无法转换directly@oleksii我尝试转换xls->BLOB->xml@MikhailTimofeev我将.xls更改为.xlsx,但出现了相同的错误occur@Guru如果不深入了解xls格式的内部细节,这是不可能的。它是微软专有的封闭源代码二进制格式。您不能简单地将其转换为字节并将字节作为xml读取。使用xlsx格式可能会更幸运,因为它是开源的。我认为它是基于xml和gzip或zip压缩的。在记事本中打开xlsx格式-如果您可以看到它是xml,那么您的转换应该可以工作,但我怀疑您需要先解压缩它。
 Name     Age
 A        20
 B        25
 C        30
BlobValues   VARBINARY(MAX)
protected void btn1_click(object sender, EventArgs e)
{
    if (fileupload.HasFile)
    {
        int filelength = myfile.ContentLength;
        byte[] mydata = new byte[filelength];
        myfile.InputStream.Read(mydata, 0, filelength);

        using (SqlConnection sqlconnection = new SqlConnection(@"Data Source=xxx.xxx.x.xxx;User Id=sa;Password=root;Initial Catalog=SampleDB; Integrated Security=SSPI;"))
        {
            sqlconnection.Open();
            string insertxmlquery = @"INSERT INTO TestBlob ([ByteValues]) VALUES (@BinData)";
            SqlCommand Insertcommand = new SqlCommand(insertxmlquery, sqlconnection);
            SqlParameter sqlparam = Insertcommand.Parameters.AddWithValue("@BinData", mydata);
            sqlparam.DbType = System.Data.DbType.Binary;
            Insertcommand.ExecuteNonQuery();
        }
    }
    else
    {
        lbl.Text = "Choose your file";
    }
}
  BlobValues
  0xD0CF11E0A1B11AE1000000000000000000000000000000003E000300FEFF09000600000000....largeCode
ALTER TABLE TestBlob
ADD MYXML AS CAST(CAST(Blobvalues AS VARCHAR(MAX)) AS XML)
Msg 9420, Level 16, State 1, Line 1
XML parsing: line 1, character 3, illegal xml character