我无法在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;
}
}
由于某种原因,arr1
的长度为2423168
而arr2
为1211584
- 完全是一半。我用113个其他汇编文件完成了这个,这是唯一一个无法正常工作的文件。
我正在绕弯道试图弄清楚什么是错的,有什么想法吗?