我无法在表中存储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
is2423168
和arr2
is的长度1211584
,出于某种原因 - 完全是一半。我已经用其他 113 个汇编文件完成了这项工作,这是唯一一个不能正常工作的。
我正在开车兜风,试图找出问题所在,有什么想法吗?