luyiliyu 2013-10-23 08:05 采纳率: 0%
浏览 1368

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

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

  • 写回答

1条回答

  • 专家-赤兔[在线] 全栈领域优质创作者 2023-09-27 11:49
    关注

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


    要将内容是二进制的字符串转换为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类型字段名称。

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

    评论

报告相同问题?

悬赏问题

  • ¥15 LiBeAs的带隙等于0.997eV,计算阴离子的N和P
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 matlab有关常微分方程的问题求解决
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算
  • ¥15 java如何提取出pdf里的文字?
  • ¥100 求三轴之间相互配合画圆以及直线的算法