所以我的SSIS Script
名为Data
的列中有一列BlobColumn
我想将此列分配给string
值。
我执行以下操作:
Row.Data = "MyString";
但是我收到以下错误:
无法隐式转换类型'string' Microsoft.SqlServer.Dts.Pipeline.BlobColumn
那么如何将BlobColumn
分配给String
值?
答案 0 :(得分:5)
使用Converting a string to byte-array without using an encoding (byte-by-byte)
提供的答案我做了以下事情:
Row.Data.AddBlobData(GetBytes("MyString"));
其中:的
byte[] GetBytes(string str)
{
byte[] bytes = new byte[str.Length * sizeof(char)];
System.Buffer.BlockCopy(str.ToCharArray(), 0, bytes, 0, bytes.Length);
return bytes;
}
答案 1 :(得分:0)
首先,您必须决定使用哪种编码对字符串进行编码。 如果你不在乎,我建议使用:
Little Endian UTF-16的性能,因为.NET字符串存储在该编码中
System.Text.Encoding.Unicode.GetBytes("MyString");
UTF-8用于存储
System.Text.Encoding.UTF8.GetBytes("MyString");
请在此处阅读有关编码的更多信息:Character Encoding in .NET
您应不使用提供的答案here。 阅读那里的整个讨论,了解原因。答案是针对一个非常具体的用例和一些有教育意义的用例。