0

我无法在表中存储VARBINARY(MAX)数据。SQL

SELECT BulkColumn
FROM    OPENROWSET(BULK 'C:\Example.exe', SINGLE_BLOB) MyFile

我通过执行上述操作来填充表 - 因为Binary字符串太长,我们无法直接插入字符串,因此我们使用该chunking方法,您可以执行初始插入并跟进一系列更新语句。

通过使用第一种方法用二进制数据填充一行,然后执行脚本用二进制数据填充另一行。

如果我复制并粘贴二进制字段的内容并比较两者 - 它们是相同的。

但是,如果我使用以下代码,则它们不是:

byte[] arr1 = null;
using (SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["SippPremium"].ConnectionString))
{
  using (SqlCommand cmd = new SqlCommand("SELECT BinaryData FROM dbo.vertDLL WHERE DLL_PK = 1", con))
  {
    DataTable dt = new DataTable();
    SqlDataAdapter sda = new SqlDataAdapter(cmd);
    sda.Fill(dt);
    arr1 = (byte[])dt.Rows[0]["BinaryData"];
  }
}
//Same code to get arr2
for (int i = 0; i < arr1.Length; i++)
{
  if (i > arr2.Length)
  {
    Console.WriteLine("Array finishes at {0}", arr2[i - 1]);
  }
  else if(arr1[i] !=  arr2[i])
  {
    Console.WriteLine("Byte {0} is different", i);
    Console.ReadLine();
    break;
  }
}

arr1is2423168arr2is的长度1211584,出于某种原因 - 完全是一半。我已经用其他 113 个汇编文件完成了这项工作,这是唯一一个不能正常工作的。

我正在开车兜风,试图找出问题所在,有什么想法吗?

4

0 回答 0