传输内容应该是一堆浮点数
byte[]里是二进制,怎么插入到数据库里去??C使用fread(,,float(32))即可将浮点数读出。求具体代码。======
下面是我的代码:private void down(ref NetworkStream stream)
{
int length = 1024;
int iter;
byte[] bye=new byte[1024];
int tt=stream.Read(bye,0,length);
/*for (iter = 0; iter < bye.Length; iter += 4)//每四个字节转化为32位浮点再插入数据库,但是插入的是错的 {
cn.Open();
Single dat = BitConverter.ToSingle(bye, iter); SqlCommand cmd = new SqlCommand("insert into test (Value) values ('" + dat + "')", cn);
cmd.ExecuteNonQuery();
cn.Close();
}*/ //下行循环读取网络流并写进文件
while(tt>0)
{
string ss=System.Text.Encoding.ASCII.GetString(bye);
int x=ss.IndexOf("<EOF>"); if(x!=-1)
{
filestream.Write(bye,0,x);
filestream.Flush();
break;
}
else
{
filestream.Write(bye,0,tt);
filestream.Flush();
}
tt=stream.Read(bye,0,length);
}//对用于while(!control)的“{”
filestream.Close();
MessageBox.Show("下载完毕!");
}
byte[]里是二进制,怎么插入到数据库里去??C使用fread(,,float(32))即可将浮点数读出。求具体代码。======
下面是我的代码:private void down(ref NetworkStream stream)
{
int length = 1024;
int iter;
byte[] bye=new byte[1024];
int tt=stream.Read(bye,0,length);
/*for (iter = 0; iter < bye.Length; iter += 4)//每四个字节转化为32位浮点再插入数据库,但是插入的是错的 {
cn.Open();
Single dat = BitConverter.ToSingle(bye, iter); SqlCommand cmd = new SqlCommand("insert into test (Value) values ('" + dat + "')", cn);
cmd.ExecuteNonQuery();
cn.Close();
}*/ //下行循环读取网络流并写进文件
while(tt>0)
{
string ss=System.Text.Encoding.ASCII.GetString(bye);
int x=ss.IndexOf("<EOF>"); if(x!=-1)
{
filestream.Write(bye,0,x);
filestream.Flush();
break;
}
else
{
filestream.Write(bye,0,tt);
filestream.Flush();
}
tt=stream.Read(bye,0,length);
}//对用于while(!control)的“{”
filestream.Close();
MessageBox.Show("下载完毕!");
}
我把它八个字节八个字节的提取,用ToDouble转化,但是还是错的, /*for (iter = 0; iter < bye.Length; iter += 8)//每八个字节转化为32位浮点再插入数据库,但是插入的是错的 {
cn.Open();
double dat = BitConverter.ToDouble(bye, iter); SqlCommand cmd = new SqlCommand("insert into test (Value) values ('" + dat + "')", cn);
cmd.ExecuteNonQuery();
cn.Close();
}*/
数据库字段类型是image