INSERT BYTE[] TO Sql不带参数

本文关键字:参数 Sql TO BYTE INSERT | 更新日期: 2023-09-27 18:02:03

我想创建一个原始SQL查询,将加密值(byte[])添加到SQL列(varbinary),而不使用这样的参数:

 byte[] value = GetEncryptedValue();
 string query = "INSERT INTO Table1 VALUES('" + value.ToString() + "')";

我想插入的列数据类型是varbinary。我需要一些使用value.ToString()的函数。怎么写呢?我只需要像master。dbo这样的函数。Fn_varbintohexstr在sql!!

INSERT BYTE[] TO Sql不带参数

二进制文字的形式为0x6ABCDEF,即0x后跟十六进制形式的字节。

你可以使用它将字节数组转换为文字值:

string literal = "0x" + String.Join("", value.Select(n => n.ToString("X2")));

二进制字面值周围没有撇号:

string query = "INSERT INTO Table1 VALUES(" + literal + ")";

另一种方法是使用BitConverter

byte[] value = GetEncryptedValue();
string query = 
    "INSERT INTO Table1 (c1) VALUES(0x" + BitConverter.ToString(value).Replace("-", "") + ")";

BitConverter.ToString返回类似于01-02-03....的内容