请问如何将数组写进blob,在线等待!@

honeyrose 2009-10-10 08:59:43
有一float数组,想写进oracle的blob字段。

我用了
float[] BI_NUM = new float[32467];
BI_NUM赋值;
byte[] bi = new byte[32467];
for (int j = 0; j < 32467; j++)
{ bi[j] = (byte)BI_NUM[j];}
//写数据
string sql1 = "insert into QX_TEMP(LINE_DATA) values(:LINE_DATA)";
OracleCommand line_cmd = new OracleCommand(sql1, oracle_conn);
line_cmd.Parameters.Add(new OracleParameter("LINE_DATA", OracleType.Blob));
line_cmd.Parameters["LINE_DATA"].Value = bi;
line_cmd.ExecuteNonQuery();

但是写进去的不对啊。请问是怎么回事?是我在转换过程中,从float数组转byte[]中有问题吗?
...全文
84 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
honeyrose 2009-10-10
  • 打赏
  • 举报
回复
谢谢
trentliu 2009-10-10
  • 打赏
  • 举报
回复
 float[] BI_NUM = new float[32467];


byte[] bi = new byte[32467 * 4];
for (int j = 0; j < 32467; j++)
{
byte[] bytes = BitConverter.GetBytes(BI_NUM[j]);
bi[j*4] = bytes[0];
bi[j*4+1] = bytes[1];
bi[j*4+2] = bytes[2];
bi[j*4+3] = bytes[3];
}
trentliu 2009-10-10
  • 打赏
  • 举报
回复
float[32467] 转成 byte[] 绝对不是32467, 一个float 应该是 4 个 byte

应该是 32467 * 4,

for ()
{

byte[] oneNumberBytes = BitConverter.GetBytes(BI_NUM[0]);

bi[0]=oneNumberBytes[0];
bi[1]=oneNumberBytes[1];
bi[2]=oneNumberBytes[2];
bi[3]=oneNumberBytes[3];
....

}

111,125

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧