可变二进制文本表示为byte[]
本文关键字:byte 表示 二进制 文本 | 更新日期: 2023-09-27 18:09:59
在c#中,我如何将SQL Server Management Studio显示为varbinary列的内容的文本输出,并将该文本转换为存储在列中的字节[]?
好的,那么您想要复制并粘贴SSMS中显示的varbinary列的值(例如:"0x6100730064006600"),并从c#中获得字节[]?
这很容易- 0x之后的部分只是十六进制值(每个2个字符)。因此,取每一对,将其转换为指定十六进制的数字,并将其添加到列表中,如下所示:
string stringFromSQL = "0x6100730064006600";
List<byte> byteList = new List<byte>();
string hexPart = stringFromSQL.Substring(2);
for (int i = 0; i < hexPart.Length / 2; i++)
{
string hexNumber = hexPart.Substring(i * 2, 2);
byteList.Add((byte)Convert.ToInt32(hexNumber, 16));
}
byte [] original = byteList.ToArray();
免责声明-相当不可靠且不理想的代码,我只是为了演示目的而将其拼凑在一起(尽管它应该可以工作)。
SqlConnection conn = new SqlConnection(yourConnectionString);
SqlCommand cmd = new SqlCommand("select col from yourtable", conn);
SqlDataReader reader = cmd.ExecuteReader();
if (reader.HasRows)
{
byte[] bytes = (byte[])reader[0];
}
reader.Close();
conn.Close();