日期:2014-05-18  浏览次数:21131 次

高手指点:C#中怎样获取数据库中长二进制字段的值(着急啊)
数据库中的长二进制字段原先是用C++方法将一个float型的变长数组写进去,现在是反过来,需要通过C#把这个字段的值取出放入到一个float型的数组中,不知道怎样一个个地截取二进制数据并转换为float型值。若能给些参考代码,不胜感激!!

------解决方案--------------------
C# code
SqlDataReader

------解决方案--------------------
byte[] newBytes = new byte[二进制数组的Length];

int j = 0;

for (int k = 0; k < strBytes.Length; )
{
string a = strBytes.Substring(k, 8);

newBytes[j] = Convert.ToByte(a, 2);

k = k + 8;

j++;
}
string b = Encoding.Default.GetString(newBytes);
以上是二进制转换为字符串的代码。供参考。。。
------解决方案--------------------
C# code
byte[] bsfloat =...;
System.IntPtr ptr =Marshal.UnsafeAddrOfPinnedArrayElement(bsfloat,0);
float f = (float)Marshal.PtrToStructure( ptr ,typeof(float));

------解决方案--------------------
C# code
BitConverter.ToSingle(bytes,0);