В С#, как я могу взять текстовый вывод, который SQL Server Management Studio показывает как содержимое столбца varbinary, и превратить этот текст в байт [], который хранится в столбце?
Представление варбинового текста в байт []
Ответ 1
ОК, поэтому вы хотите скопировать и вставить значение, отображаемое в SSMS для столбца varbinary (например, "0x6100730064006600" ), и получить из него байта [] в С#?
Это довольно легко - часть после 0x - это только шестнадцатеричные значения (по 2 символа). Итак, вы берете каждую пару, конвертируете ее в число, определяющее базу из 16 (шестнадцатеричный), и добавляете ее в список, например:
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();
Отказ от ответственности - довольно изворотливый и неоптимальный код, я просто взломал его для демонстрационных целей (он должен работать, хотя).
Ответ 2
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();