怎样将内容是binary的字符串转换成byte[]数组,并存入sql server image类型字段。
1条回答
关注 该回复引自免费微信小程序-皆我百晓生:
要将内容是二进制的字符串转换为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 求三轴之间相互配合画圆以及直线的算法