怎样将内容是binary的字符串转换成byte[]数组

怎样将内容是binary的字符串转换成byte[]数组,并存入sql server image类型字段。

该回复引自免费微信小程序-皆我百晓生:


要将内容是二进制的字符串转换为byte[]数组,并将其存储到SQL Server的image类型字段中,你可以使用以下代码示例:

string binaryString = "01101000 01100101 01101100 01101100 01101111"; // 二进制字符串
binaryString = binaryString.Replace(" ", ""); // 去除空格

byte[] byteArray = new byte[binaryString.Length / 8]; // 创建一个byte数组,长度为二进制字符串长度的1/8(一个byte占8位)

for (int i = 0; i < binaryString.Length; i += 8)
{
    string eightBits = binaryString.Substring(i, 8); // 每次取8位二进制字符串
    byteArray[i / 8] = Convert.ToByte(eightBits, 2); // 将8位二进制字符串转换为byte,并存储到byte数组中
}

// 假设你已经有一个名为connString的SQL Server连接字符串,并创建一个名为connection的SQLConnection对象
using (SqlConnection connection = new SqlConnection(connString))
{
    connection.Open();

    // 假设你有一个名为tableName的表,有一个名为imageField的image类型字段
    string sql = "INSERT INTO tableName (imageField) VALUES (@image)";

    using (SqlCommand command = new SqlCommand(sql, connection))
    {
        command.Parameters.Add("@image", SqlDbType.Image).Value = byteArray; // 将byte数组作为参数传递给SQL语句
        command.ExecuteNonQuery();
    }
}

这段代码首先去除二进制字符串中的空格,然后根据字符串长度创建一个byte数组。然后,循环遍历该二进制字符串,每次取8位二进制字符串,并将其转换为byte类型,并将其存储到byte数组中。最后,使用SQL连接字符串和参数化查询,在SQL Server中将byte数组存储到image类型的字段中。

请确保将connString替换为实际的SQL连接字符串,将tableName替换为实际的表名称,将imageField替换为实际的image类型字段名称。

希望对你有所帮助!如果有其他问题,请随时提问。